Autogenerated HTML docs for v2.50.0-rc0-61-gb07857 
diff --git a/RelNotes/2.50.0.adoc b/RelNotes/2.50.0.adoc index c6c34d1..c3d5dad 100644 --- a/RelNotes/2.50.0.adoc +++ b/RelNotes/2.50.0.adoc 
@@ -89,6 +89,8 @@  check, which can be useful when the repository arranges to ensure  connectivity by some other means.   + * "git notes --help" documentation updates. +    Performance, Internal Implementation, Development Support etc.  -------------------------------------------------------------- @@ -100,7 +102,9 @@  * "git fsck" becomes more careful when checking the refs.    * "git fast-export | git fast-import" learns to deal with commit and - tag objects with embedded signatures a bit better. + tag objects with embedded signatures a bit better. This is highly + experimental and the format of the data stream may change in the + future without compatibility guarantees.    * The code paths to check whether a refname X is available (by seeing  if another ref X/Y exists, etc.) have been optimized. @@ -193,6 +197,10 @@  do not pass the leak checker tests, as they should no longer be  needed.   + * When a stale .midx file refers to .pack files that no longer exist, + we ended up checking for these non-existent files repeatedly, which + has been optimized by memoizing the non-existence. +    Fixes since v2.49  ----------------- @@ -355,6 +363,22 @@  expand sparse-index while working.  (merge ecf9ba20e3 ds/sparse-apply-add-p later to maint).   + * Avoid adding directory path to a sparse-index tree entries to the + name-hash, since they would bloat the hashtable without anybody + querying for them. This was done already for a single threaded + part of the code, but now the multi-threaded code also does the + same. + (merge 2e60aabc75 am/sparse-index-name-hash-fix later to maint). + + * Recent versions of Perl started warning against "! A =~ /pattern/" + which does not negate the result of the matching. As it turns out + that the problematic function is not even called, it was removed. + (merge 67cae845d2 op/cvsserver-perl-warning later to maint). + + * "git apply --index/--cached" when applying a deletion patch in + reverse failed to give the mode bits of the path "removed" by the + patch to the file it creates, which has been corrected. +  * Other code cleanup, docfix, build fix, etc.  (merge 227c4f33a0 ja/doc-block-delimiter-markup-fix later to maint).  (merge 2bfd3b3685 ab/decorate-code-cleanup later to maint). @@ -387,3 +411,4 @@  (merge 91db6c735d ly/reftable-writer-leakfix later to maint).  (merge 20e4e9ad0b jc/doc-synopsis-option-markup later to maint).  (merge cddcee7f64 es/meson-configure-build-options-fix later to maint). + (merge cea9f55f00 wk/sparse-checkout-doc-fix later to maint). 
diff --git a/git-am.html b/git-am.html index 6f7a1f5..5928b0e 100644 --- a/git-am.html +++ b/git-am.html 
@@ -599,8 +599,8 @@  am.threeWay configuration variable. For more information,  see am.threeWay in <a href="git-config.html">git-config(1)</a>.</p>  </dd> -<dt class="hdlist1">--rerere-autoupdate</dt> -<dt class="hdlist1">--no-rerere-autoupdate</dt> +<dt class="hdlist1"><code>--rerere-autoupdate</code></dt> +<dt class="hdlist1"><code>--no-rerere-autoupdate</code></dt>  <dd>  <p>After the rerere mechanism reuses a recorded resolution on  the current conflict to update the files in the working 
diff --git a/git-checkout.adoc b/git-checkout.adoc index a66c53a..ee83b6d 100644 --- a/git-checkout.adoc +++ b/git-checkout.adoc 
@@ -7,54 +7,54 @@    SYNOPSIS  -------- -[verse] -'git checkout' [-q] [-f] [-m] [<branch>] -'git checkout' [-q] [-f] [-m] --detach [<branch>] -'git checkout' [-q] [-f] [-m] [--detach] <commit> -'git checkout' [-q] [-f] [-m] [[-b|-B|--orphan] <new-branch>] [<start-point>] -'git checkout' [-f] <tree-ish> [--] <pathspec>... -'git checkout' [-f] <tree-ish> --pathspec-from-file=<file> [--pathspec-file-nul] -'git checkout' [-f|--ours|--theirs|-m|--conflict=<style>] [--] <pathspec>... -'git checkout' [-f|--ours|--theirs|-m|--conflict=<style>] --pathspec-from-file=<file> [--pathspec-file-nul] -'git checkout' (-p|--patch) [<tree-ish>] [--] [<pathspec>...] +[synopsis] +git checkout [-q] [-f] [-m] [<branch>] +git checkout [-q] [-f] [-m] --detach [<branch>] +git checkout [-q] [-f] [-m] [--detach] <commit> +git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new-branch>] [<start-point>] +git checkout [-f] <tree-ish> [--] <pathspec>... +git checkout [-f] <tree-ish> --pathspec-from-file=<file> [--pathspec-file-nul] +git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [--] <pathspec>... +git checkout [-f|--ours|--theirs|-m|--conflict=<style>] --pathspec-from-file=<file> [--pathspec-file-nul] +git checkout (-p|--patch) [<tree-ish>] [--] [<pathspec>...]    DESCRIPTION  -----------  Updates files in the working tree to match the version in the index -or the specified tree. If no pathspec was given, 'git checkout' will +or the specified tree. If no pathspec was given, `git checkout` will  also update `HEAD` to set the specified branch as the current  branch.   -'git checkout' [<branch>]:: -	To prepare for working on `<branch>`, switch to it by updating +`git checkout [<branch>]`:: +	To prepare for working on _<branch>_, switch to it by updating 	the index and the files in the working tree, and by pointing 	`HEAD` at the branch. Local modifications to the files in the 	working tree are kept, so that they can be committed to the -	`<branch>`. +	_<branch>_.  + -If `<branch>` is not found but there does exist a tracking branch in -exactly one remote (call it `<remote>`) with a matching name and +If _<branch>_ is not found but there does exist a tracking branch in +exactly one remote (call it _<remote>_) with a matching name and  `--no-guess` is not specified, treat as equivalent to  +  ------------  $ git checkout -b <branch> --track <remote>/<branch>  ------------  + -You could omit `<branch>`, in which case the command degenerates to +You could omit _<branch>_, in which case the command degenerates to  "check out the current branch", which is a glorified no-op with  rather expensive side-effects to show only the tracking information,  if it exists, for the current branch.   -'git checkout' -b|-B <new-branch> [<start-point>]:: +`git checkout (-b|-B) <new-branch> [<start-point>]`::   	Specifying `-b` causes a new branch to be created as if 	linkgit:git-branch[1] were called and then checked out. In 	this case you can use the `--track` or `--no-track` options, -	which will be passed to 'git branch'. As a convenience, +	which will be passed to `git branch`. As a convenience, 	`--track` without `-b` implies branch creation; see the 	description of `--track` below.  + -If `-B` is given, `<new-branch>` is created if it doesn't exist; otherwise, it +If `-B` is given, _<new-branch>_ is created if it doesn't exist; otherwise, it  is reset. This is the transactional equivalent of  +  ------------ @@ -67,30 +67,30 @@  just the current branch stays the same, but the branch is not reset to  the start-point, either).   -'git checkout' --detach [<branch>]:: -'git checkout' [--detach] <commit>:: +`git checkout --detach [<branch>]`:: +`git checkout [--detach] <commit>`::   -	Prepare to work on top of `<commit>`, by detaching `HEAD` at it +	Prepare to work on top of _<commit>_, by detaching `HEAD` at it 	(see "DETACHED HEAD" section), and updating the index and the 	files in the working tree. Local modifications to the files 	in the working tree are kept, so that the resulting working 	tree will be the state recorded in the commit plus the local 	modifications.  + -When the `<commit>` argument is a branch name, the `--detach` option can +When the _<commit>_ argument is a branch name, the `--detach` option can  be used to detach `HEAD` at the tip of the branch (`git checkout  <branch>` would check out that branch without detaching `HEAD`).  + -Omitting `<branch>` detaches `HEAD` at the tip of the current branch. +Omitting _<branch>_ detaches `HEAD` at the tip of the current branch.   -'git checkout' [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <pathspec>...:: -'git checkout' [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] --pathspec-from-file=<file> [--pathspec-file-nul]:: +`git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <pathspec>...`:: +`git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] --pathspec-from-file=<file> [--pathspec-file-nul]`::   	Overwrite the contents of the files that match the pathspec. -	When the `<tree-ish>` (most often a commit) is not given, +	When the _<tree-ish>_ (most often a commit) is not given, 	overwrite working tree with the contents in the index. -	When the `<tree-ish>` is given, overwrite both the index and -	the working tree with the contents at the `<tree-ish>`. +	When the _<tree-ish>_ is given, overwrite both the index and +	the working tree with the contents at the _<tree-ish>_.  +  The index may contain unmerged entries because of a previous failed merge.  By default, if you try to check out such an entry from the index, the @@ -100,7 +100,7 @@  using `--ours` or `--theirs`. With `-m`, changes made to the working tree  file can be discarded to re-create the original conflicted merge result.   -'git checkout' (-p|--patch) [<tree-ish>] [--] [<pathspec>...]:: +`git checkout (-p|--patch) [<tree-ish>] [--] [<pathspec>...]`:: 	This is similar to the previous mode, but lets you use the 	interactive interface to show the "diff" output and choose which 	hunks to use in the result. See below for the description of @@ -108,19 +108,19 @@    OPTIONS  ------- --q:: ---quiet:: +`-q`:: +`--quiet`:: 	Quiet, suppress feedback messages.   ---progress:: ---no-progress:: +`--progress`:: +`--no-progress`:: 	Progress status is reported on the standard error stream 	by default when it is attached to a terminal, unless `--quiet` 	is specified. This flag enables progress reporting even if not 	attached to a terminal, regardless of `--quiet`.   --f:: ---force:: +`-f`:: +`--force`:: 	When switching branches, proceed even if the index or the 	working tree differs from `HEAD`, and even if there are untracked 	files in the way. This is used to throw away local changes and @@ -129,13 +129,13 @@  When checking out paths from the index, do not fail upon unmerged  entries; instead, unmerged entries are ignored.   ---ours:: ---theirs:: +`--ours`:: +`--theirs`:: 	When checking out paths from the index, check out stage #2 -	('ours') or #3 ('theirs') for unmerged paths. +	(`ours`) or #3 (`theirs`) for unmerged paths.  + -Note that during `git rebase` and `git pull --rebase`, 'ours' and -'theirs' may appear swapped; `--ours` gives the version from the +Note that during `git rebase` and `git pull --rebase`, `ours` and +`theirs` may appear swapped; `--ours` gives the version from the  branch the changes are rebased onto, while `--theirs` gives the  version from the branch that holds your work that is being rebased.  + @@ -149,22 +149,22 @@  on your side branch as `theirs` (i.e. "one contributor's work on top  of it").   --b <new-branch>:: -	Create a new branch named `<new-branch>`, start it at -	`<start-point>`, and check the resulting branch out; +`-b <new-branch>`:: +	Create a new branch named _<new-branch>_, start it at +	_<start-point>_, and check the resulting branch out; 	see linkgit:git-branch[1] for details.   --B <new-branch>:: -	Creates the branch `<new-branch>`, start it at `<start-point>`; -	if it already exists, then reset it to `<start-point>`. And then +`-B <new-branch>`:: +	Creates the branch _<new-branch>_, start it at _<start-point>_; +	if it already exists, then reset it to _<start-point>_. And then 	check the resulting branch out. This is equivalent to running -	"git branch" with "-f" followed by "git checkout" of that branch; +	`git branch` with `-f` followed by `git checkout` of that branch; 	see linkgit:git-branch[1] for details.   --t:: ---track[=(direct|inherit)]:: +`-t`:: +`--track[=(direct|inherit)]`:: 	When creating a new branch, set up "upstream" configuration. See -	"--track" in linkgit:git-branch[1] for details. +	`--track` in linkgit:git-branch[1] for details.  +  If no `-b` option is given, the name of the new branch will be  derived from the remote-tracking branch, by looking at the local part of @@ -176,14 +176,14 @@  guessing results in an empty name, the guessing is aborted. You can  explicitly give a name with `-b` in such a case.   ---no-track:: +`--no-track`:: 	Do not set up "upstream" configuration, even if the 	`branch.autoSetupMerge` configuration variable is true.   ---guess:: ---no-guess:: -	If `<branch>` is not found but there does exist a tracking -	branch in exactly one remote (call it `<remote>`) with a +`--guess`:: +`--no-guess`:: +	If _<branch>_ is not found but there does exist a tracking +	branch in exactly one remote (call it _<remote>_) with a 	matching name, treat as equivalent to  +  ------------ @@ -192,10 +192,10 @@  +  If the branch exists in multiple remotes and one of them is named by  the `checkout.defaultRemote` configuration variable, we'll use that -one for the purposes of disambiguation, even if the `<branch>` isn't +one for the purposes of disambiguation, even if the _<branch>_ isn't  unique across all remotes. Set it to  e.g. `checkout.defaultRemote=origin` to always checkout remote -branches from there if `<branch>` is ambiguous but exists on the +branches from there if _<branch>_ is ambiguous but exists on the  'origin' remote. See also `checkout.defaultRemote` in  linkgit:git-config[1].  + @@ -204,28 +204,28 @@  The default behavior can be set via the `checkout.guess` configuration  variable.   --l:: +`-l`:: 	Create the new branch's reflog; see linkgit:git-branch[1] for 	details.   --d:: ---detach:: +`-d`:: +`--detach`:: 	Rather than checking out a branch to work on it, check out a 	commit for inspection and discardable experiments. 	This is the default behavior of `git checkout <commit>` when -	`<commit>` is not a branch name. See the "DETACHED HEAD" section +	_<commit>_ is not a branch name. See the "DETACHED HEAD" section 	below for details.   ---orphan <new-branch>:: -	Create a new unborn branch, named `<new-branch>`, started from -	`<start-point>` and switch to it. The first commit made on this +`--orphan <new-branch>`:: +	Create a new unborn branch, named _<new-branch>_, started from +	_<start-point>_ and switch to it. The first commit made on this 	new branch will have no parents and it will be the root of a new 	history totally disconnected from all the other branches and 	commits.  +  The index and the working tree are adjusted as if you had previously run  `git checkout <start-point>`. This allows you to start a new history -that records a set of paths similar to `<start-point>` by easily running +that records a set of paths similar to _<start-point>_ by easily running  `git commit -a` to make the root commit.  +  This can be useful when you want to publish the tree from a commit @@ -235,20 +235,20 @@  code.  +  If you want to start a disconnected history that records a set of paths -that is totally different from the one of `<start-point>`, then you should +that is totally different from the one of _<start-point>_, then you should  clear the index and the working tree right after creating the orphan  branch by running `git rm -rf .` from the top level of the working tree.  Afterwards you will be ready to prepare your new files, repopulating the  working tree, by copying them from elsewhere, extracting a tarball, etc.   ---ignore-skip-worktree-bits:: -	In sparse checkout mode, `git checkout -- <paths>` would -	update only entries matched by `<paths>` and sparse patterns +`--ignore-skip-worktree-bits`:: +	In sparse checkout mode, `git checkout -- <path>...` would +	update only entries matched by _<paths>_ and sparse patterns 	in `$GIT_DIR/info/sparse-checkout`. This option ignores -	the sparse patterns and adds back any files in `<paths>`. +	the sparse patterns and adds back any files in `<path>...`.   --m:: ---merge:: +`-m`:: +`--merge`:: 	When switching branches, 	if you have local modifications to one or more files that 	are different between the current branch and the branch to @@ -269,40 +269,40 @@  +  When switching branches with `--merge`, staged changes may be lost.   ---conflict=<style>:: +`--conflict=<style>`:: 	The same as `--merge` option above, but changes the way the 	conflicting hunks are presented, overriding the 	`merge.conflictStyle` configuration variable. Possible values are -	"merge" (default), "diff3", and "zdiff3". +	`merge` (default), `diff3`, and `zdiff3`.   --p:: ---patch:: +`-p`:: +`--patch`:: 	Interactively select hunks in the difference between the -	`<tree-ish>` (or the index, if unspecified) and the working +	_<tree-ish>_ (or the index, if unspecified) and the working 	tree. The chosen hunks are then applied in reverse to the -	working tree (and if a `<tree-ish>` was specified, the index). +	working tree (and if a _<tree-ish>_ was specified, the index).  +  This means that you can use `git checkout -p` to selectively discard -edits from your current working tree. See the ``Interactive Mode'' +edits from your current working tree. See the "Interactive Mode"  section of linkgit:git-add[1] to learn how to operate the `--patch` mode.  +  Note that this option uses the no overlay mode by default (see also  `--overlay`), and currently doesn't support overlay mode.   ---ignore-other-worktrees:: +`--ignore-other-worktrees`:: 	`git checkout` refuses when the wanted branch is already checked 	out or otherwise in use by another worktree. This option makes 	it check the branch out anyway. In other words, the branch can 	be in use by more than one worktree.   ---overwrite-ignore:: ---no-overwrite-ignore:: +`--overwrite-ignore`:: +`--no-overwrite-ignore`:: 	Silently overwrite ignored files when switching branches. This 	is the default behavior. Use `--no-overwrite-ignore` to abort 	the operation when the new branch contains ignored files.   ---recurse-submodules:: ---no-recurse-submodules:: +`--recurse-submodules`:: +`--no-recurse-submodules`:: 	Using `--recurse-submodules` will update the content of all active 	submodules according to the commit recorded in the superproject. If 	local modifications in a submodule would be overwritten the checkout @@ -311,25 +311,25 @@ 	Just like linkgit:git-submodule[1], this will detach `HEAD` of the 	submodule.   ---overlay:: ---no-overlay:: +`--overlay`:: +`--no-overlay`:: 	In the default overlay mode, `git checkout` never 	removes files from the index or the working tree. When 	specifying `--no-overlay`, files that appear in the index and -	working tree, but not in `<tree-ish>` are removed, to make them -	match `<tree-ish>` exactly. +	working tree, but not in _<tree-ish>_ are removed, to make them +	match _<tree-ish>_ exactly.   ---pathspec-from-file=<file>:: -	Pathspec is passed in `<file>` instead of commandline args. If -	`<file>` is exactly `-` then standard input is used. Pathspec -	elements are separated by LF or CR/LF. Pathspec elements can be +`--pathspec-from-file=<file>`:: +	Pathspec is passed in _<file>_ instead of commandline args. If +	_<file>_ is exactly `-` then standard input is used. Pathspec +	elements are separated by _LF_ or _CR_/_LF_. Pathspec elements can be 	quoted as explained for the configuration variable `core.quotePath` 	(see linkgit:git-config[1]). See also `--pathspec-file-nul` and 	global `--literal-pathspecs`.   ---pathspec-file-nul:: +`--pathspec-file-nul`:: 	Only meaningful with `--pathspec-from-file`. Pathspec elements are -	separated with NUL character and all other characters are taken +	separated with _NUL_ character and all other characters are taken 	literally (including newlines and quotes).    <branch>:: @@ -343,33 +343,33 @@  branch/commit checked out using "git checkout" operation. You may  also specify `-` which is synonymous to `@{-1}`.  + -As a special case, you may use `A...B` as a shortcut for the -merge base of `A` and `B` if there is exactly one merge base. You can -leave out at most one of `A` and `B`, in which case it defaults to `HEAD`. +As a special case, you may use `<rev-a>...<rev-b>` as a shortcut for the +merge base of _<rev-a>_ and _<rev-b>_ if there is exactly one merge base. You can +leave out at most one of _<rev-a>_ and _<rev-b>_, in which case it defaults to `HEAD`.   -<new-branch>:: +_<new-branch>_:: 	Name for the new branch.   -<start-point>:: +_<start-point>_:: 	The name of a commit at which to start the new branch; see 	linkgit:git-branch[1] for details. Defaults to `HEAD`.  + -As a special case, you may use `"A...B"` as a shortcut for the -merge base of `A` and `B` if there is exactly one merge base. You can -leave out at most one of `A` and `B`, in which case it defaults to `HEAD`. +As a special case, you may use `<rev-a>...<rev-b>` as a shortcut for the +merge base of _<rev-a>_ and _<rev-b>_ if there is exactly one merge base. You can +leave out at most one of _<rev-a>_ and _<rev-b>_, in which case it defaults to `HEAD`.   -<tree-ish>:: +_<tree-ish>_:: 	Tree to checkout from (when paths are given). If not specified, 	the index will be used.  + -As a special case, you may use `"A...B"` as a shortcut for the -merge base of `A` and `B` if there is exactly one merge base. You can -leave out at most one of `A` and `B`, in which case it defaults to `HEAD`. +As a special case, you may use `<rev-a>...<rev-b>` as a shortcut for the +merge base of _<rev-a>_ and _<rev-b>_ if there is exactly one merge base. You can +leave out at most one of _<rev-a>_ and _<rev-b>_, in which case it defaults to `HEAD`.   -\--:: +`--`:: 	Do not interpret any more arguments as options.   -<pathspec>...:: +`<pathspec>...`:: 	Limits the paths affected by the operation.  +  For more details, see the 'pathspec' entry in linkgit:gitglossary[7]. @@ -391,7 +391,7 @@  ------------    When a commit is created in this state, the branch is updated to refer to -the new commit. Specifically, 'git commit' creates a new commit `d`, whose +the new commit. Specifically, `git commit` creates a new commit `d`, whose  parent is commit `c`, and then updates branch `master` to refer to new  commit `d`. `HEAD` still refers to branch `master` and so indirectly now refers  to commit `d`: @@ -510,11 +510,11 @@  -----------------------    When there is only one argument given and it is not `--` (e.g. `git -checkout abc`), and when the argument is both a valid `<tree-ish>` -(e.g. a branch `abc` exists) and a valid `<pathspec>` (e.g. a file +checkout abc`), and when the argument is both a valid _<tree-ish>_ +(e.g. a branch `abc` exists) and a valid _<pathspec>_ (e.g. a file  or a directory whose name is "abc" exists), Git would usually ask  you to disambiguate. Because checking out a branch is so common an -operation, however, `git checkout abc` takes "abc" as a `<tree-ish>` +operation, however, `git checkout abc` takes "abc" as a _<tree-ish>_  in such a situation. Use `git checkout -- <pathspec>` if you want  to checkout these paths out of the index.   
diff --git a/git-checkout.html b/git-checkout.html index 74cce9c..11e178c 100644 --- a/git-checkout.html +++ b/git-checkout.html 
@@ -452,15 +452,15 @@  <h2 id="_synopsis">SYNOPSIS</h2>  <div class="sectionbody">  <div class="verseblock"> -<pre class="content"><em>git checkout</em> [-q] [-f] [-m] [&lt;branch&gt;] -<em>git checkout</em> [-q] [-f] [-m] --detach [&lt;branch&gt;] -<em>git checkout</em> [-q] [-f] [-m] [--detach] &lt;commit&gt; -<em>git checkout</em> [-q] [-f] [-m] [[-b|-B|--orphan] &lt;new-branch&gt;] [&lt;start-point&gt;] -<em>git checkout</em> [-f] &lt;tree-ish&gt; [--] &lt;pathspec&gt;&#8230;&#8203; -<em>git checkout</em> [-f] &lt;tree-ish&gt; --pathspec-from-file=&lt;file&gt; [--pathspec-file-nul] -<em>git checkout</em> [-f|--ours|--theirs|-m|--conflict=&lt;style&gt;] [--] &lt;pathspec&gt;&#8230;&#8203; -<em>git checkout</em> [-f|--ours|--theirs|-m|--conflict=&lt;style&gt;] --pathspec-from-file=&lt;file&gt; [--pathspec-file-nul] -<em>git checkout</em> (-p|--patch) [&lt;tree-ish&gt;] [--] [&lt;pathspec&gt;&#8230;&#8203;]</pre> +<pre class="content"><code>git</code> <code>checkout</code> [<code>-q</code>] [<code>-f</code>] [<code>-m</code>] [<em>&lt;branch&gt;</em>] +<code>git</code> <code>checkout</code> [<code>-q</code>] [<code>-f</code>] [<code>-m</code>] <code>--detach</code> [<em>&lt;branch&gt;</em>] +<code>git</code> <code>checkout</code> [<code>-q</code>] [<code>-f</code>] [<code>-m</code>] [<code>--detach</code>] <em>&lt;commit&gt;</em> +<code>git</code> <code>checkout</code> [<code>-q</code>] [<code>-f</code>] [<code>-m</code>] [[<code>-b</code>|<code>-B</code>|<code>--orphan</code>] <em>&lt;new-branch&gt;</em>] [<em>&lt;start-point&gt;</em>] +<code>git</code> <code>checkout</code> [<code>-f</code>] <em>&lt;tree-ish&gt;</em> [<code>--</code>] <em>&lt;pathspec&gt;</em>&#8230;&#8203; +<code>git</code> <code>checkout</code> [<code>-f</code>] <em>&lt;tree-ish&gt;</em> <code>--pathspec-from-file=</code><em>&lt;file&gt;</em> [<code>--pathspec-file-nul</code>] +<code>git</code> <code>checkout</code> [<code>-f</code>|<code>--ours</code>|<code>--theirs</code>|<code>-m</code>|<code>--conflict=</code><em>&lt;style&gt;</em>] [<code>--</code>] <em>&lt;pathspec&gt;</em>&#8230;&#8203; +<code>git</code> <code>checkout</code> [<code>-f</code>|<code>--ours</code>|<code>--theirs</code>|<code>-m</code>|<code>--conflict=</code><em>&lt;style&gt;</em>] <code>--pathspec-from-file=</code><em>&lt;file&gt;</em> [<code>--pathspec-file-nul</code>] +<code>git</code> <code>checkout</code> (<code>-p</code>|<code>--patch</code>) [<em>&lt;tree-ish&gt;</em>] [<code>--</code>] [<em>&lt;pathspec&gt;</em>&#8230;&#8203;]</pre>  </div>  </div>  </div> @@ -469,13 +469,13 @@  <div class="sectionbody">  <div class="paragraph">  <p>Updates files in the working tree to match the version in the index -or the specified tree. If no pathspec was given, <em>git checkout</em> will +or the specified tree. If no pathspec was given, <code>git</code> <code>checkout</code> will  also update <code>HEAD</code> to set the specified branch as the current  branch.</p>  </div>  <div class="dlist">  <dl> -<dt class="hdlist1"><em>git checkout</em> [&lt;branch&gt;]</dt> +<dt class="hdlist1"><code>git</code> <code>checkout</code> [<em>&lt;branch&gt;</em>]</dt>  <dd>  <p>To prepare for working on <em>&lt;branch&gt;</em>, switch to it by updating  the index and the files in the working tree, and by pointing @@ -499,12 +499,12 @@  if it exists, for the current branch.</p>  </div>  </dd> -<dt class="hdlist1"><em>git checkout</em> -b|-B &lt;new-branch&gt; [&lt;start-point&gt;]</dt> +<dt class="hdlist1"><code>git</code> <code>checkout</code> (<code>-b</code>|<code>-B</code>) <em>&lt;new-branch&gt;</em> [<em>&lt;start-point&gt;</em>]</dt>  <dd>  <p>Specifying <code>-b</code> causes a new branch to be created as if  <a href="git-branch.html">git-branch(1)</a> were called and then checked out. In  this case you can use the <code>--track</code> or <code>--no-track</code> options, -which will be passed to <em>git branch</em>. As a convenience, +which will be passed to <code>git</code> <code>branch</code>. As a convenience,  <code>--track</code> without <code>-b</code> implies branch creation; see the  description of <code>--track</code> below.</p>  <div class="paragraph"> @@ -524,8 +524,8 @@  the start-point, either).</p>  </div>  </dd> -<dt class="hdlist1"><em>git checkout</em> --detach [&lt;branch&gt;]</dt> -<dt class="hdlist1"><em>git checkout</em> [--detach] &lt;commit&gt;</dt> +<dt class="hdlist1"><code>git</code> <code>checkout</code> <code>--detach</code> [<em>&lt;branch&gt;</em>]</dt> +<dt class="hdlist1"><code>git</code> <code>checkout</code> [<code>--detach</code>] <em>&lt;commit&gt;</em></dt>  <dd>  <p>Prepare to work on top of <em>&lt;commit&gt;</em>, by detaching <code>HEAD</code> at it  (see "DETACHED HEAD" section), and updating the index and the @@ -542,8 +542,8 @@  <p>Omitting <em>&lt;branch&gt;</em> detaches <code>HEAD</code> at the tip of the current branch.</p>  </div>  </dd> -<dt class="hdlist1"><em>git checkout</em> [-f|--ours|--theirs|-m|--conflict=&lt;style&gt;] [&lt;tree-ish&gt;] [--] &lt;pathspec&gt;&#8230;&#8203;</dt> -<dt class="hdlist1"><em>git checkout</em> [-f|--ours|--theirs|-m|--conflict=&lt;style&gt;] [&lt;tree-ish&gt;] --pathspec-from-file=&lt;file&gt; [--pathspec-file-nul]</dt> +<dt class="hdlist1"><code>git</code> <code>checkout</code> [<code>-f</code>|<code>--ours</code>|<code>--theirs</code>|<code>-m</code>|<code>--conflict=</code><em>&lt;style&gt;</em>] [<em>&lt;tree-ish&gt;</em>] [<code>--</code>] <em>&lt;pathspec&gt;</em>...</dt> +<dt class="hdlist1"><code>git</code> <code>checkout</code> [<code>-f</code>|<code>--ours</code>|<code>--theirs</code>|<code>-m</code>|<code>--conflict=</code><em>&lt;style&gt;</em>] [<em>&lt;tree-ish&gt;</em>] <code>--pathspec-from-file=</code><em>&lt;file&gt;</em> [<code>--pathspec-file-nul</code>]</dt>  <dd>  <p>Overwrite the contents of the files that match the pathspec.  When the <em>&lt;tree-ish&gt;</em> (most often a commit) is not given, @@ -560,7 +560,7 @@  file can be discarded to re-create the original conflicted merge result.</p>  </div>  </dd> -<dt class="hdlist1"><em>git checkout</em> (-p|--patch) [&lt;tree-ish&gt;] [--] [&lt;pathspec&gt;&#8230;&#8203;]</dt> +<dt class="hdlist1"><code>git</code> <code>checkout</code> (<code>-p</code>|<code>--patch</code>) [<em>&lt;tree-ish&gt;</em>] [<code>--</code>] [<em>&lt;pathspec&gt;</em>...]</dt>  <dd>  <p>This is similar to the previous mode, but lets you use the  interactive interface to show the "diff" output and choose which @@ -576,21 +576,21 @@  <div class="sectionbody">  <div class="dlist">  <dl> -<dt class="hdlist1">-q</dt> -<dt class="hdlist1">--quiet</dt> +<dt class="hdlist1"><code>-q</code></dt> +<dt class="hdlist1"><code>--quiet</code></dt>  <dd>  <p>Quiet, suppress feedback messages.</p>  </dd> -<dt class="hdlist1">--progress</dt> -<dt class="hdlist1">--no-progress</dt> +<dt class="hdlist1"><code>--progress</code></dt> +<dt class="hdlist1"><code>--no-progress</code></dt>  <dd>  <p>Progress status is reported on the standard error stream  by default when it is attached to a terminal, unless <code>--quiet</code>  is specified. This flag enables progress reporting even if not  attached to a terminal, regardless of <code>--quiet</code>.</p>  </dd> -<dt class="hdlist1">-f</dt> -<dt class="hdlist1">--force</dt> +<dt class="hdlist1"><code>-f</code></dt> +<dt class="hdlist1"><code>--force</code></dt>  <dd>  <p>When switching branches, proceed even if the index or the  working tree differs from <code>HEAD</code>, and even if there are untracked @@ -601,14 +601,14 @@  entries; instead, unmerged entries are ignored.</p>  </div>  </dd> -<dt class="hdlist1">--ours</dt> -<dt class="hdlist1">--theirs</dt> +<dt class="hdlist1"><code>--ours</code></dt> +<dt class="hdlist1"><code>--theirs</code></dt>  <dd>  <p>When checking out paths from the index, check out stage #2 -(<em>ours</em>) or #3 (<em>theirs</em>) for unmerged paths.</p> +(<code>ours</code>) or #3 (<code>theirs</code>) for unmerged paths.</p>  <div class="paragraph"> -<p>Note that during <code>git</code> <code>rebase</code> and <code>git</code> <code>pull</code> <code>--rebase</code>, <em>ours</em> and -<em>theirs</em> may appear swapped; <code>--ours</code> gives the version from the +<p>Note that during <code>git</code> <code>rebase</code> and <code>git</code> <code>pull</code> <code>--rebase</code>, <code>ours</code> and +<code>theirs</code> may appear swapped; <code>--ours</code> gives the version from the  branch the changes are rebased onto, while <code>--theirs</code> gives the  version from the branch that holds your work that is being rebased.</p>  </div> @@ -624,25 +624,25 @@  of it").</p>  </div>  </dd> -<dt class="hdlist1">-b &lt;new-branch&gt;</dt> +<dt class="hdlist1"><code>-b</code> <em>&lt;new-branch&gt;</em></dt>  <dd>  <p>Create a new branch named <em>&lt;new-branch&gt;</em>, start it at  <em>&lt;start-point&gt;</em>, and check the resulting branch out;  see <a href="git-branch.html">git-branch(1)</a> for details.</p>  </dd> -<dt class="hdlist1">-B &lt;new-branch&gt;</dt> +<dt class="hdlist1"><code>-B</code> <em>&lt;new-branch&gt;</em></dt>  <dd>  <p>Creates the branch <em>&lt;new-branch&gt;</em>, start it at <em>&lt;start-point&gt;</em>;  if it already exists, then reset it to <em>&lt;start-point&gt;</em>. And then  check the resulting branch out. This is equivalent to running -"git branch" with "-f" followed by "git checkout" of that branch; +<code>git</code> <code>branch</code> with <code>-f</code> followed by <code>git</code> <code>checkout</code> of that branch;  see <a href="git-branch.html">git-branch(1)</a> for details.</p>  </dd> -<dt class="hdlist1">-t</dt> -<dt class="hdlist1">--track[=(direct|inherit)]</dt> +<dt class="hdlist1"><code>-t</code></dt> +<dt class="hdlist1"><code>--track</code>[<code>=</code>(<code>direct</code>|<code>inherit</code>)]</dt>  <dd>  <p>When creating a new branch, set up "upstream" configuration. See -"--track" in <a href="git-branch.html">git-branch(1)</a> for details.</p> +<code>--track</code> in <a href="git-branch.html">git-branch(1)</a> for details.</p>  <div class="paragraph">  <p>If no <code>-b</code> option is given, the name of the new branch will be  derived from the remote-tracking branch, by looking at the local part of @@ -655,13 +655,13 @@  explicitly give a name with <code>-b</code> in such a case.</p>  </div>  </dd> -<dt class="hdlist1">--no-track</dt> +<dt class="hdlist1"><code>--no-track</code></dt>  <dd>  <p>Do not set up "upstream" configuration, even if the  <code>branch.autoSetupMerge</code> configuration variable is true.</p>  </dd> -<dt class="hdlist1">--guess</dt> -<dt class="hdlist1">--no-guess</dt> +<dt class="hdlist1"><code>--guess</code></dt> +<dt class="hdlist1"><code>--no-guess</code></dt>  <dd>  <p>If <em>&lt;branch&gt;</em> is not found but there does exist a tracking  branch in exactly one remote (call it <em>&lt;remote&gt;</em>) with a @@ -689,13 +689,13 @@  variable.</p>  </div>  </dd> -<dt class="hdlist1">-l</dt> +<dt class="hdlist1"><code>-l</code></dt>  <dd>  <p>Create the new branch&#8217;s reflog; see <a href="git-branch.html">git-branch(1)</a> for  details.</p>  </dd> -<dt class="hdlist1">-d</dt> -<dt class="hdlist1">--detach</dt> +<dt class="hdlist1"><code>-d</code></dt> +<dt class="hdlist1"><code>--detach</code></dt>  <dd>  <p>Rather than checking out a branch to work on it, check out a  commit for inspection and discardable experiments. @@ -703,7 +703,7 @@  <em>&lt;commit&gt;</em> is not a branch name. See the "DETACHED HEAD" section  below for details.</p>  </dd> -<dt class="hdlist1">--orphan &lt;new-branch&gt;</dt> +<dt class="hdlist1"><code>--orphan</code> <em>&lt;new-branch&gt;</em></dt>  <dd>  <p>Create a new unborn branch, named <em>&lt;new-branch&gt;</em>, started from  <em>&lt;start-point&gt;</em> and switch to it. The first commit made on this @@ -732,15 +732,15 @@  working tree, by copying them from elsewhere, extracting a tarball, etc.</p>  </div>  </dd> -<dt class="hdlist1">--ignore-skip-worktree-bits</dt> +<dt class="hdlist1"><code>--ignore-skip-worktree-bits</code></dt>  <dd> -<p>In sparse checkout mode, <code>git</code> <code>checkout</code> <code>--</code> <em>&lt;paths&gt;</em> would +<p>In sparse checkout mode, <code>git</code> <code>checkout</code> <code>--</code> <em>&lt;path&gt;</em>... would  update only entries matched by <em>&lt;paths&gt;</em> and sparse patterns  in <code>$GIT_DIR/info/sparse-checkout</code>. This option ignores -the sparse patterns and adds back any files in <em>&lt;paths&gt;</em>.</p> +the sparse patterns and adds back any files in <em>&lt;path&gt;</em>....</p>  </dd> -<dt class="hdlist1">-m</dt> -<dt class="hdlist1">--merge</dt> +<dt class="hdlist1"><code>-m</code></dt> +<dt class="hdlist1"><code>--merge</code></dt>  <dd>  <p>When switching branches,  if you have local modifications to one or more files that @@ -765,15 +765,15 @@  <p>When switching branches with <code>--merge</code>, staged changes may be lost.</p>  </div>  </dd> -<dt class="hdlist1">--conflict=&lt;style&gt;</dt> +<dt class="hdlist1"><code>--conflict=</code><em>&lt;style&gt;</em></dt>  <dd>  <p>The same as <code>--merge</code> option above, but changes the way the  conflicting hunks are presented, overriding the  <code>merge.conflictStyle</code> configuration variable. Possible values are -"merge" (default), "diff3", and "zdiff3".</p> +<code>merge</code> (default), <code>diff3</code>, and <code>zdiff3</code>.</p>  </dd> -<dt class="hdlist1">-p</dt> -<dt class="hdlist1">--patch</dt> +<dt class="hdlist1"><code>-p</code></dt> +<dt class="hdlist1"><code>--patch</code></dt>  <dd>  <p>Interactively select hunks in the difference between the  <em>&lt;tree-ish&gt;</em> (or the index, if unspecified) and the working @@ -781,7 +781,7 @@  working tree (and if a <em>&lt;tree-ish&gt;</em> was specified, the index).</p>  <div class="paragraph">  <p>This means that you can use <code>git</code> <code>checkout</code> <code>-p</code> to selectively discard -edits from your current working tree. See the &#8220;Interactive Mode&#8221; +edits from your current working tree. See the "Interactive Mode"  section of <a href="git-add.html">git-add(1)</a> to learn how to operate the <code>--patch</code> mode.</p>  </div>  <div class="paragraph"> @@ -789,22 +789,22 @@  <code>--overlay</code>), and currently doesn&#8217;t support overlay mode.</p>  </div>  </dd> -<dt class="hdlist1">--ignore-other-worktrees</dt> +<dt class="hdlist1"><code>--ignore-other-worktrees</code></dt>  <dd>  <p><code>git</code> <code>checkout</code> refuses when the wanted branch is already checked  out or otherwise in use by another worktree. This option makes  it check the branch out anyway. In other words, the branch can  be in use by more than one worktree.</p>  </dd> -<dt class="hdlist1">--overwrite-ignore</dt> -<dt class="hdlist1">--no-overwrite-ignore</dt> +<dt class="hdlist1"><code>--overwrite-ignore</code></dt> +<dt class="hdlist1"><code>--no-overwrite-ignore</code></dt>  <dd>  <p>Silently overwrite ignored files when switching branches. This  is the default behavior. Use <code>--no-overwrite-ignore</code> to abort  the operation when the new branch contains ignored files.</p>  </dd> -<dt class="hdlist1">--recurse-submodules</dt> -<dt class="hdlist1">--no-recurse-submodules</dt> +<dt class="hdlist1"><code>--recurse-submodules</code></dt> +<dt class="hdlist1"><code>--no-recurse-submodules</code></dt>  <dd>  <p>Using <code>--recurse-submodules</code> will update the content of all active  submodules according to the commit recorded in the superproject. If @@ -814,8 +814,8 @@  Just like <a href="git-submodule.html">git-submodule(1)</a>, this will detach <code>HEAD</code> of the  submodule.</p>  </dd> -<dt class="hdlist1">--overlay</dt> -<dt class="hdlist1">--no-overlay</dt> +<dt class="hdlist1"><code>--overlay</code></dt> +<dt class="hdlist1"><code>--no-overlay</code></dt>  <dd>  <p>In the default overlay mode, <code>git</code> <code>checkout</code> never  removes files from the index or the working tree. When @@ -823,19 +823,19 @@  working tree, but not in <em>&lt;tree-ish&gt;</em> are removed, to make them  match <em>&lt;tree-ish&gt;</em> exactly.</p>  </dd> -<dt class="hdlist1">--pathspec-from-file=&lt;file&gt;</dt> +<dt class="hdlist1"><code>--pathspec-from-file=</code><em>&lt;file&gt;</em></dt>  <dd>  <p>Pathspec is passed in <em>&lt;file&gt;</em> instead of commandline args. If  <em>&lt;file&gt;</em> is exactly <code>-</code> then standard input is used. Pathspec -elements are separated by LF or CR/LF. Pathspec elements can be +elements are separated by <em>LF</em> or <em>CR</em>/<em>LF</em>. Pathspec elements can be  quoted as explained for the configuration variable <code>core.quotePath</code>  (see <a href="git-config.html">git-config(1)</a>). See also <code>--pathspec-file-nul</code> and  global <code>--literal-pathspecs</code>.</p>  </dd> -<dt class="hdlist1">--pathspec-file-nul</dt> +<dt class="hdlist1"><code>--pathspec-file-nul</code></dt>  <dd>  <p>Only meaningful with <code>--pathspec-from-file</code>. Pathspec elements are -separated with NUL character and all other characters are taken +separated with <em>NUL</em> character and all other characters are taken  literally (including newlines and quotes).</p>  </dd>  <dt class="hdlist1">&lt;branch&gt;</dt> @@ -851,40 +851,40 @@  also specify <code>-</code> which is synonymous to <code>@</code>{-1}.</p>  </div>  <div class="paragraph"> -<p>As a special case, you may use <code>A</code><code>...</code><code>B</code> as a shortcut for the -merge base of <code>A</code> and <code>B</code> if there is exactly one merge base. You can -leave out at most one of <code>A</code> and <code>B</code>, in which case it defaults to <code>HEAD</code>.</p> +<p>As a special case, you may use <em>&lt;rev-a&gt;</em><code>...</code><em>&lt;rev-b&gt;</em> as a shortcut for the +merge base of <em>&lt;rev-a&gt;</em> and <em>&lt;rev-b&gt;</em> if there is exactly one merge base. You can +leave out at most one of <em>&lt;rev-a&gt;</em> and <em>&lt;rev-b&gt;</em>, in which case it defaults to <code>HEAD</code>.</p>  </div>  </dd> -<dt class="hdlist1">&lt;new-branch&gt;</dt> +<dt class="hdlist1"><em>&lt;new-branch&gt;</em></dt>  <dd>  <p>Name for the new branch.</p>  </dd> -<dt class="hdlist1">&lt;start-point&gt;</dt> +<dt class="hdlist1"><em>&lt;start-point&gt;</em></dt>  <dd>  <p>The name of a commit at which to start the new branch; see  <a href="git-branch.html">git-branch(1)</a> for details. Defaults to <code>HEAD</code>.</p>  <div class="paragraph"> -<p>As a special case, you may use "A<code>...</code><code>B</code>" as a shortcut for the -merge base of <code>A</code> and <code>B</code> if there is exactly one merge base. You can -leave out at most one of <code>A</code> and <code>B</code>, in which case it defaults to <code>HEAD</code>.</p> +<p>As a special case, you may use <em>&lt;rev-a&gt;</em><code>...</code><em>&lt;rev-b&gt;</em> as a shortcut for the +merge base of <em>&lt;rev-a&gt;</em> and <em>&lt;rev-b&gt;</em> if there is exactly one merge base. You can +leave out at most one of <em>&lt;rev-a&gt;</em> and <em>&lt;rev-b&gt;</em>, in which case it defaults to <code>HEAD</code>.</p>  </div>  </dd> -<dt class="hdlist1">&lt;tree-ish&gt;</dt> +<dt class="hdlist1"><em>&lt;tree-ish&gt;</em></dt>  <dd>  <p>Tree to checkout from (when paths are given). If not specified,  the index will be used.</p>  <div class="paragraph"> -<p>As a special case, you may use "A<code>...</code><code>B</code>" as a shortcut for the -merge base of <code>A</code> and <code>B</code> if there is exactly one merge base. You can -leave out at most one of <code>A</code> and <code>B</code>, in which case it defaults to <code>HEAD</code>.</p> +<p>As a special case, you may use <em>&lt;rev-a&gt;</em><code>...</code><em>&lt;rev-b&gt;</em> as a shortcut for the +merge base of <em>&lt;rev-a&gt;</em> and <em>&lt;rev-b&gt;</em> if there is exactly one merge base. You can +leave out at most one of <em>&lt;rev-a&gt;</em> and <em>&lt;rev-b&gt;</em>, in which case it defaults to <code>HEAD</code>.</p>  </div>  </dd> -<dt class="hdlist1">--</dt> +<dt class="hdlist1"><code>--</code></dt>  <dd>  <p>Do not interpret any more arguments as options.</p>  </dd> -<dt class="hdlist1">&lt;pathspec&gt;&#8230;&#8203;</dt> +<dt class="hdlist1"><em>&lt;pathspec&gt;</em>...</dt>  <dd>  <p>Limits the paths affected by the operation.</p>  <div class="paragraph"> @@ -916,7 +916,7 @@  </div>  <div class="paragraph">  <p>When a commit is created in this state, the branch is updated to refer to -the new commit. Specifically, <em>git commit</em> creates a new commit <code>d</code>, whose +the new commit. Specifically, <code>git</code> <code>commit</code> creates a new commit <code>d</code>, whose  parent is commit <code>c</code>, and then updates branch <code>master</code> to refer to new  commit <code>d</code>. <code>HEAD</code> still refers to branch <code>master</code> and so indirectly now refers  to commit <code>d</code>:</p> @@ -1205,7 +1205,7 @@  </div>  <div class="dlist">  <dl> -<dt class="hdlist1">checkout.defaultRemote</dt> +<dt class="hdlist1"><code>checkout.defaultRemote</code></dt>  <dd>  <p>When you run <code>git</code> <code>checkout</code> <em>&lt;something&gt;</em>  or <code>git</code> <code>switch</code> <em>&lt;something&gt;</em> and only have one @@ -1226,13 +1226,13 @@  commands or functionality in the future.</p>  </div>  </dd> -<dt class="hdlist1">checkout.guess</dt> +<dt class="hdlist1"><code>checkout.guess</code></dt>  <dd>  <p>Provides the default value for the <code>--guess</code> or <code>--no-guess</code>  option in <code>git</code> <code>checkout</code> and <code>git</code> <code>switch</code>. See  <a href="git-switch.html">git-switch(1)</a> and <a href="git-checkout.html">git-checkout(1)</a>.</p>  </dd> -<dt class="hdlist1">checkout.workers</dt> +<dt class="hdlist1"><code>checkout.workers</code></dt>  <dd>  <p>The number of parallel workers to use when updating the working tree.  The default is one, i.e. sequential execution. If set to a value less @@ -1240,15 +1240,24 @@  available. This setting and <code>checkout.thresholdForParallelism</code> affect  all commands that perform checkout. E.g. checkout, clone, reset,  sparse-checkout, etc.</p> -<div class="paragraph"> -<p>Note: Parallel checkout usually delivers better performance for repositories +<div class="admonitionblock note"> +<table> +<tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content"> +Parallel checkout usually delivers better performance for repositories  located on SSDs or over NFS. For repositories on spinning disks and/or machines  with a small number of cores, the default sequential checkout often performs  better. The size and compression level of a repository might also influence how -well the parallel version performs.</p> +well the parallel version performs. +</td> +</tr> +</table>  </div>  </dd> -<dt class="hdlist1">checkout.thresholdForParallelism</dt> +<dt class="hdlist1"><code>checkout.thresholdForParallelism</code></dt>  <dd>  <p>When running parallel checkout with a small number of files, the cost  of subprocess spawning and inter-process communication might outweigh @@ -1280,7 +1289,7 @@  </div>  <div id="footer">  <div id="footer-text"> -Last updated 2025-02-14 21:38:14 -0800 +Last updated 2025-06-02 12:42:06 -0700  </div>  </div>  </body> 
diff --git a/git-cherry-pick.html b/git-cherry-pick.html index c83094f..86a3e2e 100644 --- a/git-cherry-pick.html +++ b/git-cherry-pick.html 
@@ -667,8 +667,8 @@  <p>Pass the merge strategy-specific option through to the  merge strategy. See <a href="git-merge.html">git-merge(1)</a> for details.</p>  </dd> -<dt class="hdlist1">--rerere-autoupdate</dt> -<dt class="hdlist1">--no-rerere-autoupdate</dt> +<dt class="hdlist1"><code>--rerere-autoupdate</code></dt> +<dt class="hdlist1"><code>--no-rerere-autoupdate</code></dt>  <dd>  <p>After the rerere mechanism reuses a recorded resolution on  the current conflict to update the files in the working 
diff --git a/git-commit.html b/git-commit.html index 64bb24f..aae05f4 100644 --- a/git-commit.html +++ b/git-commit.html 
@@ -1323,10 +1323,11 @@  <p>This setting overrides the default of the <code>--cleanup</code> option in  <code>git</code> <code>commit</code>. Changing the default can be useful  when you always want to keep lines that begin -with the comment character # in your log message, in which case you +with the comment character (<code>core.commentChar</code>, default #) +in your log message, in which case you  would do <code>git</code> <code>config</code> <code>commit.cleanup</code> <code>whitespace</code> (note that you will -have to remove the help lines that begin with # in the commit log -template yourself, if you do this).</p> +have to remove the help lines that begin with the comment character +in the commit log template yourself, if you do this).</p>  </dd>  <dt class="hdlist1"><code>commit.gpgSign</code></dt>  <dd> 
diff --git a/git-config.html b/git-config.html index 47040e8..000b894 100644 --- a/git-config.html +++ b/git-config.html 
@@ -2445,7 +2445,7 @@  <p>This string value defines the URI by which Git can reach the contents  of this <em>&lt;id&gt;</em>. This URI may be a bundle file or another bundle list.</p>  </dd> -<dt class="hdlist1">checkout.defaultRemote</dt> +<dt class="hdlist1"><code>checkout.defaultRemote</code></dt>  <dd>  <p>When you run <code>git</code> <code>checkout</code> <em>&lt;something&gt;</em>  or <code>git</code> <code>switch</code> <em>&lt;something&gt;</em> and only have one @@ -2466,13 +2466,13 @@  commands or functionality in the future.</p>  </div>  </dd> -<dt class="hdlist1">checkout.guess</dt> +<dt class="hdlist1"><code>checkout.guess</code></dt>  <dd>  <p>Provides the default value for the <code>--guess</code> or <code>--no-guess</code>  option in <code>git</code> <code>checkout</code> and <code>git</code> <code>switch</code>. See  <a href="git-switch.html">git-switch(1)</a> and <a href="git-checkout.html">git-checkout(1)</a>.</p>  </dd> -<dt class="hdlist1">checkout.workers</dt> +<dt class="hdlist1"><code>checkout.workers</code></dt>  <dd>  <p>The number of parallel workers to use when updating the working tree.  The default is one, i.e. sequential execution. If set to a value less @@ -2480,15 +2480,24 @@  available. This setting and <code>checkout.thresholdForParallelism</code> affect  all commands that perform checkout. E.g. checkout, clone, reset,  sparse-checkout, etc.</p> -<div class="paragraph"> -<p>Note: Parallel checkout usually delivers better performance for repositories +<div class="admonitionblock note"> +<table> +<tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content"> +Parallel checkout usually delivers better performance for repositories  located on SSDs or over NFS. For repositories on spinning disks and/or machines  with a small number of cores, the default sequential checkout often performs  better. The size and compression level of a repository might also influence how -well the parallel version performs.</p> +well the parallel version performs. +</td> +</tr> +</table>  </div>  </dd> -<dt class="hdlist1">checkout.thresholdForParallelism</dt> +<dt class="hdlist1"><code>checkout.thresholdForParallelism</code></dt>  <dd>  <p>When running parallel checkout with a small number of files, the cost  of subprocess spawning and inter-process communication might outweigh @@ -2884,10 +2893,11 @@  <p>This setting overrides the default of the <code>--cleanup</code> option in  <code>git</code> <code>commit</code>. See <a href="git-commit.html">git-commit(1)</a> for details. Changing the default can be useful  when you always want to keep lines that begin -with the comment character # in your log message, in which case you +with the comment character (<code>core.commentChar</code>, default #) +in your log message, in which case you  would do <code>git</code> <code>config</code> <code>commit.cleanup</code> <code>whitespace</code> (note that you will -have to remove the help lines that begin with # in the commit log -template yourself, if you do this).</p> +have to remove the help lines that begin with the comment character +in the commit log template yourself, if you do this).</p>  </dd>  <dt class="hdlist1"><code>commit.gpgSign</code></dt>  <dd> @@ -6713,7 +6723,7 @@  <p>Override the path for the given tool that may be used to  display help in the <em>man</em> format. See <a href="git-help.html">git-help(1)</a>.</p>  </dd> -<dt class="hdlist1">merge.conflictStyle</dt> +<dt class="hdlist1"><code>merge.conflictStyle</code></dt>  <dd>  <p>Specify the style in which conflicted hunks are written out to  working tree files upon merge. The default is "merge", which @@ -6729,18 +6739,18 @@  the conflict region when those matching lines appear near either  the beginning or end of a conflict region.</p>  </dd> -<dt class="hdlist1">merge.defaultToUpstream</dt> +<dt class="hdlist1"><code>merge.defaultToUpstream</code></dt>  <dd>  <p>If merge is called without any commit argument, merge the upstream  branches configured for the current branch by using their last  observed values stored in their remote-tracking branches.  The values of the <code>branch.</code>&lt;current <code>branch</code>&gt;<code>.merge</code> that name the -branches at the remote named by <code>branch.</code>&lt;current <code>branch</code>&gt;<code>.remote</code> +branches at the remote named by <code>branch.</code><em>&lt;current-branch&gt;</em><code>.remote</code>  are consulted, and then they are mapped via <code>remote.</code><em>&lt;remote&gt;</em><code>.fetch</code>  to their corresponding remote-tracking branches, and the tips of  these tracking branches are merged. Defaults to true.</p>  </dd> -<dt class="hdlist1">merge.ff</dt> +<dt class="hdlist1"><code>merge.ff</code></dt>  <dd>  <p>By default, Git does not create an extra merge commit when merging  a commit that is a descendant of the current commit. Instead, the @@ -6751,30 +6761,30 @@  allowed (equivalent to giving the <code>--ff-only</code> option from the  command line).</p>  </dd> -<dt class="hdlist1">merge.verifySignatures</dt> +<dt class="hdlist1"><code>merge.verifySignatures</code></dt>  <dd> -<p>If true, this is equivalent to the --verify-signatures command +<p>If true, this is equivalent to the <code>--verify-signatures</code> command  line option. See <a href="git-merge.html">git-merge(1)</a> for details.</p>  </dd> -<dt class="hdlist1">merge.branchdesc</dt> +<dt class="hdlist1"><code>merge.branchdesc</code></dt>  <dd>  <p>In addition to branch names, populate the log message with  the branch description text associated with them. Defaults  to false.</p>  </dd> -<dt class="hdlist1">merge.log</dt> +<dt class="hdlist1"><code>merge.log</code></dt>  <dd>  <p>In addition to branch names, populate the log message with at  most the specified number of one-line descriptions from the  actual commits that are being merged. Defaults to false, and  true is a synonym for 20.</p>  </dd> -<dt class="hdlist1">merge.suppressDest</dt> +<dt class="hdlist1"><code>merge.suppressDest</code></dt>  <dd>  <p>By adding a glob that matches the names of integration  branches to this multi-valued configuration variable, the  default merge message computed for merges into these -integration branches will omit "into &lt;branch name&gt;" from +integration branches will omit "into <em>&lt;branch-name&gt;</em>" from  its title.</p>  <div class="paragraph">  <p>An element with an empty value can be used to clear the list @@ -6783,40 +6793,59 @@  default value of <code>master</code> is used for backward compatibility.</p>  </div>  </dd> -<dt class="hdlist1">merge.renameLimit</dt> +<dt class="hdlist1"><code>merge.renameLimit</code></dt>  <dd>  <p>The number of files to consider in the exhaustive portion of  rename detection during a merge. If not specified, defaults -to the value of diff.renameLimit. If neither -merge.renameLimit nor diff.renameLimit are specified, +to the value of <code>diff.renameLimit</code>. If neither +<code>merge.renameLimit</code> nor <code>diff.renameLimit</code> are specified,  currently defaults to 7000. This setting has no effect if  rename detection is turned off.</p>  </dd> -<dt class="hdlist1">merge.renames</dt> +<dt class="hdlist1"><code>merge.renames</code></dt>  <dd> -<p>Whether Git detects renames. If set to "false", rename detection -is disabled. If set to "true", basic rename detection is enabled. +<p>Whether Git detects renames. If set to <code>false</code>, rename detection +is disabled. If set to <code>true</code>, basic rename detection is enabled.  Defaults to the value of diff.renames.</p>  </dd> -<dt class="hdlist1">merge.directoryRenames</dt> +<dt class="hdlist1"><code>merge.directoryRenames</code></dt>  <dd>  <p>Whether Git detects directory renames, affecting what happens at  merge time to new files added to a directory on one side of  history when that directory was renamed on the other side of -history. If merge.directoryRenames is set to "false", directory -rename detection is disabled, meaning that such new files will be -left behind in the old directory. If set to "true", directory -rename detection is enabled, meaning that such new files will be -moved into the new directory. If set to "conflict", a conflict -will be reported for such paths. If merge.renames is false, -merge.directoryRenames is ignored and treated as false. Defaults -to "conflict".</p> +history. Possible values are:</p> +<div class="openblock"> +<div class="content"> +<div class="dlist"> +<dl> +<dt class="hdlist1"><code>false</code></dt> +<dd> +<p>Directory rename detection is disabled, meaning that such new files will be +left behind in the old directory.</p>  </dd> -<dt class="hdlist1">merge.renormalize</dt> +<dt class="hdlist1"><code>true</code></dt> +<dd> +<p>Directory rename detection is enabled, meaning that such new files will be +moved into the new directory.</p> +</dd> +<dt class="hdlist1"><code>conflict</code></dt> +<dd> +<p>A conflict will be reported for such paths.</p> +</dd> +</dl> +</div> +</div> +</div> +<div class="paragraph"> +<p>If <code>merge.renames</code> is <code>false</code>, <code>merge.directoryRenames</code> is ignored and treated +as <code>false</code>. Defaults to <code>conflict</code>.</p> +</div> +</dd> +<dt class="hdlist1"><code>merge.renormalize</code></dt>  <dd>  <p>Tell Git that canonical representation of files in the  repository has changed over time (e.g. earlier commits record -text files with CRLF line endings, but recent ones use LF line +text files with <em>CRLF</em> line endings, but recent ones use <em>LF</em> line  endings). In such a repository, for each file where a  three-way content merge is needed, Git can convert the data  recorded in commits to a canonical form before performing a @@ -6824,35 +6853,35 @@  see section "Merging branches with differing checkin/checkout  attributes" in <a href="gitattributes.html">gitattributes(5)</a>.</p>  </dd> -<dt class="hdlist1">merge.stat</dt> +<dt class="hdlist1"><code>merge.stat</code></dt>  <dd> -<p>Whether to print the diffstat between ORIG_HEAD and the merge result +<p>Whether to print the diffstat between <code>ORIG_HEAD</code> and the merge result  at the end of the merge. True by default.</p>  </dd> -<dt class="hdlist1">merge.autoStash</dt> +<dt class="hdlist1"><code>merge.autoStash</code></dt>  <dd> -<p>When set to true, automatically create a temporary stash entry +<p>When set to <code>true</code>, automatically create a temporary stash entry  before the operation begins, and apply it after the operation  ends. This means that you can run merge on a dirty worktree.  However, use with care: the final stash application after a  successful merge might result in non-trivial conflicts.  This option can be overridden by the <code>--no-autostash</code> and  <code>--autostash</code> options of <a href="git-merge.html">git-merge(1)</a>. -Defaults to false.</p> +Defaults to <code>false</code>.</p>  </dd> -<dt class="hdlist1">merge.tool</dt> +<dt class="hdlist1"><code>merge.tool</code></dt>  <dd>  <p>Controls which merge tool is used by <a href="git-mergetool.html">git-mergetool(1)</a>.  The list below shows the valid built-in values.  Any other value is treated as a custom merge tool and requires -that a corresponding mergetool.&lt;tool&gt;.cmd variable is defined.</p> +that a corresponding <code>mergetool.</code><em>&lt;tool&gt;</em><code>.cmd</code> variable is defined.</p>  </dd> -<dt class="hdlist1">merge.guitool</dt> +<dt class="hdlist1"><code>merge.guitool</code></dt>  <dd>  <p>Controls which merge tool is used by <a href="git-mergetool.html">git-mergetool(1)</a> when the --g/--gui flag is specified. The list below shows the valid built-in values. +<code>-g</code>/<code>--gui</code> flag is specified. The list below shows the valid built-in values.  Any other value is treated as a custom merge tool and requires that a -corresponding mergetool.&lt;guitool&gt;.cmd variable is defined.</p> +corresponding <code>mergetool.</code><em>&lt;guitool&gt;</em><code>.cmd</code> variable is defined.</p>  <div class="dlist">  <dl>  <dt class="hdlist1"><code>araxis</code></dt> @@ -6994,7 +7023,7 @@  </dl>  </div>  </dd> -<dt class="hdlist1">merge.verbosity</dt> +<dt class="hdlist1"><code>merge.verbosity</code></dt>  <dd>  <p>Controls the amount of output shown by the recursive merge  strategy. Level 0 outputs nothing except a final error @@ -7003,46 +7032,46 @@  above outputs debugging information. The default is level 2.  Can be overridden by the <code>GIT_MERGE_VERBOSITY</code> environment variable.</p>  </dd> -<dt class="hdlist1">merge.&lt;driver&gt;.name</dt> +<dt class="hdlist1"><code>merge.</code><em>&lt;driver&gt;</em><code>.name</code></dt>  <dd>  <p>Defines a human-readable name for a custom low-level  merge driver. See <a href="gitattributes.html">gitattributes(5)</a> for details.</p>  </dd> -<dt class="hdlist1">merge.&lt;driver&gt;.driver</dt> +<dt class="hdlist1"><code>merge.</code><em>&lt;driver&gt;</em><code>.driver</code></dt>  <dd>  <p>Defines the command that implements a custom low-level  merge driver. See <a href="gitattributes.html">gitattributes(5)</a> for details.</p>  </dd> -<dt class="hdlist1">merge.&lt;driver&gt;.recursive</dt> +<dt class="hdlist1"><code>merge.</code><em>&lt;driver&gt;</em><code>.recursive</code></dt>  <dd>  <p>Names a low-level merge driver to be used when  performing an internal merge between common ancestors.  See <a href="gitattributes.html">gitattributes(5)</a> for details.</p>  </dd> -<dt class="hdlist1">mergetool.&lt;tool&gt;.path</dt> +<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.path</code></dt>  <dd>  <p>Override the path for the given tool. This is useful in case -your tool is not in the PATH.</p> +your tool is not in the <code>$PATH</code>.</p>  </dd> -<dt class="hdlist1">mergetool.&lt;tool&gt;.cmd</dt> +<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.cmd</code></dt>  <dd>  <p>Specify the command to invoke the specified merge tool. The  specified command is evaluated in shell with the following -variables available: <em>BASE</em> is the name of a temporary file +variables available: <code>BASE</code> is the name of a temporary file  containing the common base of the files to be merged, if available; -<em>LOCAL</em> is the name of a temporary file containing the contents of -the file on the current branch; <em>REMOTE</em> is the name of a temporary +<code>LOCAL</code> is the name of a temporary file containing the contents of +the file on the current branch; <code>REMOTE</code> is the name of a temporary  file containing the contents of the file from the branch being -merged; <em>MERGED</em> contains the name of the file to which the merge +merged; <code>MERGED</code> contains the name of the file to which the merge  tool should write the results of a successful merge.</p>  </dd> -<dt class="hdlist1">mergetool.&lt;tool&gt;.hideResolved</dt> +<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.hideResolved</code></dt>  <dd>  <p>Allows the user to override the global <code>mergetool.hideResolved</code> value  for a specific tool. See <code>mergetool.hideResolved</code> for the full  description.</p>  </dd> -<dt class="hdlist1">mergetool.&lt;tool&gt;.trustExitCode</dt> +<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.trustExitCode</code></dt>  <dd>  <p>For a custom merge command, specify whether the exit code of  the merge command can be used to determine whether the merge was @@ -7051,7 +7080,7 @@  if the file has been updated; otherwise, the user is prompted to  indicate the success of the merge.</p>  </dd> -<dt class="hdlist1">mergetool.meld.hasOutput</dt> +<dt class="hdlist1"><code>mergetool.meld.hasOutput</code></dt>  <dd>  <p>Older versions of <code>meld</code> do not support the <code>--output</code> option.  Git will attempt to detect whether <code>meld</code> supports <code>--output</code> @@ -7061,7 +7090,7 @@  to <code>true</code> tells Git to unconditionally use the <code>--output</code> option,  and <code>false</code> avoids using <code>--output</code>.</p>  </dd> -<dt class="hdlist1">mergetool.meld.useAutoMerge</dt> +<dt class="hdlist1"><code>mergetool.meld.useAutoMerge</code></dt>  <dd>  <p>When the <code>--auto-merge</code> is given, meld will merge all non-conflicting  parts automatically, highlight the conflicting parts, and wait for @@ -7072,37 +7101,37 @@  value of <code>false</code> avoids using <code>--auto-merge</code> altogether, and is the  default value.</p>  </dd> -<dt class="hdlist1">mergetool.&lt;vimdiff variant&gt;.layout</dt> +<dt class="hdlist1"><code>mergetool.</code><em>&lt;variant&gt;</em><code>.layout</code></dt>  <dd>  <p>Configure the split window layout for vimdiff&#8217;s <em>&lt;variant&gt;</em>, which is any of <code>vimdiff</code>,  <code>nvimdiff</code>, <code>gvimdiff</code>.  Upon launching <code>git</code> <code>mergetool</code> with <code>--tool=</code><em>&lt;variant&gt;</em> (or without <code>--tool</code>  if <code>merge.tool</code> is configured as <em>&lt;variant&gt;</em>), Git will consult  <code>mergetool.</code><em>&lt;variant&gt;</em><code>.layout</code> to determine the tool&#8217;s layout. If the -variant-specific configuration is not available, <code>vimdiff</code>'s is used as +variant-specific configuration is not available, <code>vimdiff</code> ' s is used as  fallback. If that too is not available, a default layout with 4 windows -will be used. To configure the layout, see the <code>BACKEND</code> <code>SPECIFIC</code> <code>HINTS</code> +will be used. To configure the layout, see the <em>BACKEND SPECIFIC HINTS</em>  section in <a href="git-mergetool.html">git-mergetool(1)</a>.</p>  </dd> -<dt class="hdlist1">mergetool.hideResolved</dt> +<dt class="hdlist1"><code>mergetool.hideResolved</code></dt>  <dd>  <p>During a merge, Git will automatically resolve as many conflicts as -possible and write the <em>MERGED</em> file containing conflict markers around -any conflicts that it cannot resolve; <em>LOCAL</em> and <em>REMOTE</em> normally -represent the versions of the file from before Git&#8217;s conflict -resolution. This flag causes <em>LOCAL</em> and <em>REMOTE</em> to be overwritten so +possible and write the <code>$MERGED</code> file containing conflict markers around +any conflicts that it cannot resolve; <code>$LOCAL</code> and <code>$REMOTE</code> normally +are the versions of the file from before Git`s conflict +resolution. This flag causes <code>$LOCAL</code> and <code>$REMOTE</code> to be overwritten so  that only the unresolved conflicts are presented to the merge tool. Can  be configured per-tool via the <code>mergetool.</code><em>&lt;tool&gt;</em><code>.hideResolved</code>  configuration variable. Defaults to <code>false</code>.</p>  </dd> -<dt class="hdlist1">mergetool.keepBackup</dt> +<dt class="hdlist1"><code>mergetool.keepBackup</code></dt>  <dd>  <p>After performing a merge, the original file with conflict markers  can be saved as a file with a .<code>orig</code> extension. If this variable  is set to <code>false</code> then this file is not preserved. Defaults to  <code>true</code> (i.e. keep the backup files).</p>  </dd> -<dt class="hdlist1">mergetool.keepTemporaries</dt> +<dt class="hdlist1"><code>mergetool.keepTemporaries</code></dt>  <dd>  <p>When invoking a custom merge tool, Git uses a set of temporary  files to pass to the tool. If the tool returns an error and this @@ -7110,18 +7139,18 @@  preserved; otherwise, they will be removed after the tool has  exited. Defaults to <code>false</code>.</p>  </dd> -<dt class="hdlist1">mergetool.writeToTemp</dt> +<dt class="hdlist1"><code>mergetool.writeToTemp</code></dt>  <dd> -<p>Git writes temporary <em>BASE</em>, <em>LOCAL</em>, and <em>REMOTE</em> versions of +<p>Git writes temporary <code>BASE</code>, <code>LOCAL</code>, and <code>REMOTE</code> versions of  conflicting files in the worktree by default. Git will attempt  to use a temporary directory for these files when set <code>true</code>.  Defaults to <code>false</code>.</p>  </dd> -<dt class="hdlist1">mergetool.prompt</dt> +<dt class="hdlist1"><code>mergetool.prompt</code></dt>  <dd>  <p>Prompt before each invocation of the merge resolution program.</p>  </dd> -<dt class="hdlist1">mergetool.guiDefault</dt> +<dt class="hdlist1"><code>mergetool.guiDefault</code></dt>  <dd>  <p>Set <code>true</code> to use the <code>merge.guitool</code> by default (equivalent to  specifying the <code>--gui</code> argument), or <code>auto</code> to select <code>merge.guitool</code> 
diff --git a/git-fast-export.adoc b/git-fast-export.adoc index 413a527..43bbb4f 100644 --- a/git-fast-export.adoc +++ b/git-fast-export.adoc 
@@ -46,14 +46,12 @@    --signed-commits=(verbatim|warn-verbatim|warn-strip|strip|abort):: 	Specify how to handle signed commits. Behaves exactly as -	'--signed-tags', but for commits. Default is 'abort'. +	'--signed-tags', but for commits. Default is 'strip', which +	is the same as how earlier versions of this command without +	this option behaved.  + -Earlier versions this command that did not have '--signed-commits' -behaved as if '--signed-commits=strip'. As an escape hatch for users -of tools that call 'git fast-export' but do not yet support -'--signed-commits', you may set the environment variable -'FAST_EXPORT_SIGNED_COMMITS_NOABORT=1' in order to change the default -from 'abort' to 'warn-strip'. +NOTE: This is highly experimental and the format of the data stream may +change in the future without compatibility guarantees.    --tag-of-filtered-object=(abort|drop|rewrite):: 	Specify how to handle tags whose tagged object is filtered out. 
diff --git a/git-fast-export.html b/git-fast-export.html index f7d10e2..92527b7 100644 --- a/git-fast-export.html +++ b/git-fast-export.html 
@@ -503,14 +503,21 @@  <dt class="hdlist1">--signed-commits=(verbatim|warn-verbatim|warn-strip|strip|abort)</dt>  <dd>  <p>Specify how to handle signed commits. Behaves exactly as -<em>--signed-tags</em>, but for commits. Default is <em>abort</em>.</p> -<div class="paragraph"> -<p>Earlier versions this command that did not have <em>--signed-commits</em> -behaved as if <em>--signed-commits=strip</em>. As an escape hatch for users -of tools that call <em>git fast-export</em> but do not yet support -<em>--signed-commits</em>, you may set the environment variable -<em>FAST_EXPORT_SIGNED_COMMITS_NOABORT=1</em> in order to change the default -from <em>abort</em> to <em>warn-strip</em>.</p> +<em>--signed-tags</em>, but for commits. Default is <em>strip</em>, which +is the same as how earlier versions of this command without +this option behaved.</p> +<div class="admonitionblock note"> +<table> +<tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content"> +This is highly experimental and the format of the data stream may +change in the future without compatibility guarantees. +</td> +</tr> +</table>  </div>  </dd>  <dt class="hdlist1">--tag-of-filtered-object=(abort|drop|rewrite)</dt> @@ -816,7 +823,7 @@  </div>  <div id="footer">  <div id="footer-text"> -Last updated 2025-03-29 01:09:47 -0700 +Last updated 2025-06-02 12:42:06 -0700  </div>  </div>  </body> 
diff --git a/git-fast-import.adoc b/git-fast-import.adoc index 7b107f5..250d866 100644 --- a/git-fast-import.adoc +++ b/git-fast-import.adoc 
@@ -523,6 +523,9 @@  Here <alg> specifies which hashing algorithm is used for this  signature, either `sha1` or `sha256`.   +NOTE: This is highly experimental and the format of the data stream may +change in the future without compatibility guarantees. +  `encoding`  ^^^^^^^^^^  The optional `encoding` command indicates the encoding of the commit 
diff --git a/git-fast-import.html b/git-fast-import.html index 8575321..d2de5de 100644 --- a/git-fast-import.html +++ b/git-fast-import.html 
@@ -1088,6 +1088,19 @@  <p>Here &lt;alg&gt; specifies which hashing algorithm is used for this  signature, either <code>sha1</code> or <code>sha256</code>.</p>  </div> +<div class="admonitionblock note"> +<table> +<tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content"> +This is highly experimental and the format of the data stream may +change in the future without compatibility guarantees. +</td> +</tr> +</table> +</div>  </div>  <div class="sect3">  <h4 id="_encoding"><code>encoding</code></h4> @@ -2559,7 +2572,7 @@  </div>  <div id="footer">  <div id="footer-text"> -Last updated 2025-03-29 01:09:47 -0700 +Last updated 2025-06-02 12:42:06 -0700  </div>  </div>  </body> 
diff --git a/git-fmt-merge-msg.html b/git-fmt-merge-msg.html index 7d88a40..8bd95c6 100644 --- a/git-fmt-merge-msg.html +++ b/git-fmt-merge-msg.html 
@@ -520,25 +520,25 @@  <div class="sectionbody">  <div class="dlist">  <dl> -<dt class="hdlist1">merge.branchdesc</dt> +<dt class="hdlist1"><code>merge.branchdesc</code></dt>  <dd>  <p>In addition to branch names, populate the log message with  the branch description text associated with them. Defaults  to false.</p>  </dd> -<dt class="hdlist1">merge.log</dt> +<dt class="hdlist1"><code>merge.log</code></dt>  <dd>  <p>In addition to branch names, populate the log message with at  most the specified number of one-line descriptions from the  actual commits that are being merged. Defaults to false, and  true is a synonym for 20.</p>  </dd> -<dt class="hdlist1">merge.suppressDest</dt> +<dt class="hdlist1"><code>merge.suppressDest</code></dt>  <dd>  <p>By adding a glob that matches the names of integration  branches to this multi-valued configuration variable, the  default merge message computed for merges into these -integration branches will omit "into &lt;branch name&gt;" from +integration branches will omit "into <em>&lt;branch-name&gt;</em>" from  its title.</p>  <div class="paragraph">  <p>An element with an empty value can be used to clear the list 
diff --git a/git-merge.adoc b/git-merge.adoc index 64281d6..12aa859 100644 --- a/git-merge.adoc +++ b/git-merge.adoc 
@@ -8,13 +8,13 @@    SYNOPSIS  -------- -[verse] -'git merge' [-n] [--stat] [--no-commit] [--squash] [--[no-]edit] +[synopsis] +git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit] 	[--no-verify] [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]] 	[--[no-]allow-unrelated-histories] 	[--[no-]rerere-autoupdate] [-m <msg>] [-F <file>] 	[--into-name <branch>] [<commit>...] -'git merge' (--continue | --abort | --quit) +git merge (--continue | --abort | --quit)    DESCRIPTION  ----------- @@ -57,7 +57,7 @@  after the merge was started), `git merge --abort` will in some cases be  unable to reconstruct the original (pre-merge) changes. Therefore:   -*Warning*: Running `git merge` with non-trivial uncommitted changes is +WARNING: Running `git merge` with non-trivial uncommitted changes is  discouraged: while possible, it may leave you in a state that is hard to  back out of in the case of a conflict.   @@ -67,7 +67,7 @@    include::merge-options.adoc[]   --m <msg>:: +`-m <msg>`:: 	Set the commit message to be used for the merge commit (in 	case one is created).  + @@ -78,13 +78,13 @@  used to give a good default for automated `git merge`  invocations. The automated message can include the branch description.   ---into-name <branch>:: +`--into-name <branch>`:: 	Prepare the default merge message as if merging to the branch -	`<branch>`, instead of the name of the real branch to which +	_<branch>_, instead of the name of the real branch to which 	the merge is made.   --F <file>:: ---file=<file>:: +`-F <file>`:: +`--file=<file>`:: 	Read the commit message to be used for the merge commit (in 	case one is created).  + @@ -93,12 +93,12 @@    include::rerere-options.adoc[]   ---overwrite-ignore:: ---no-overwrite-ignore:: +`--overwrite-ignore`:: +`--no-overwrite-ignore`:: 	Silently overwrite ignored files from the merge result. This 	is the default behavior. Use `--no-overwrite-ignore` to abort.   ---abort:: +`--abort`:: 	Abort the current conflict resolution process, and 	try to reconstruct the pre-merge state. If an autostash entry is 	present, apply it to the worktree. @@ -114,17 +114,17 @@  whereas `git reset --merge` will save the stashed changes in the stash  list.   ---quit:: +`--quit`:: 	Forget about the current merge in progress. Leave the index 	and the working tree as-is. If `MERGE_AUTOSTASH` is present, the 	stash entry will be saved to the stash list.   ---continue:: +`--continue`:: 	After a `git merge` stops due to conflicts you can conclude the 	merge by running `git merge --continue` (see "HOW TO RESOLVE 	CONFLICTS" section below).   -<commit>...:: +`<commit>...`:: 	Commits, usually other branch heads, to merge into our branch. 	Specifying more than one commit will create a merge with 	more than two parents (affectionately called an Octopus merge). @@ -152,7 +152,7 @@  `git pull` and `git merge` will also abort if there are any changes  registered in the index relative to the `HEAD` commit. (Special  narrow exceptions to this rule may exist depending on which merge -strategy is in use, but generally, the index must match HEAD.) +strategy is in use, but generally, the index must match `HEAD`.)    If all named commits are already ancestors of `HEAD`, `git merge`  will exit early with the message "Already up to date." @@ -195,11 +195,11 @@  stage 2 from `HEAD`, and stage 3 from `MERGE_HEAD` (you  can inspect the stages with `git ls-files -u`). The working  tree files contain the result of the merge operation; i.e. 3-way - merge results with familiar conflict markers `<<<` `===` `>>>`. + merge results with familiar conflict markers +<<<+ `===` +>>>+.  5. A ref named `AUTO_MERGE` is written, pointing to a tree  corresponding to the current content of the working tree (including  conflict markers for textual conflicts). Note that this ref is only - written when the 'ort' merge strategy is used (the default). + written when the `ort` merge strategy is used (the default).  6. No other changes are made. In particular, the local  modifications you had before you started merge will stay the  same and the index entries for them stay as they were, @@ -231,7 +231,6 @@  git merge --ff-only v1.2.3  ----   -  HOW CONFLICTS ARE PRESENTED  ---------------------------   @@ -260,7 +259,7 @@  ------------    The area where a pair of conflicting changes happened is marked with markers -`<<<<<<<`, `=======`, and `>>>>>>>`. The part before the `=======` ++<<<<<<<+, `=======`, and +>>>>>>>+. The part before the `=======`  is typically your side, and the part afterwards is typically their side.    The default format does not show what the original said in the conflicting @@ -270,7 +269,7 @@  other side wants to claim it is easy.    An alternative style can be used by setting the `merge.conflictStyle` -configuration variable to either "diff3" or "zdiff3". In "diff3" +configuration variable to either `diff3` or `zdiff3`. In `diff3`  style, the above conflict may look like this:    ------------ @@ -290,7 +289,7 @@  And here is another line that is cleanly resolved or unmodified.  ------------   -while in "zdiff3" style, it may look like this: +while in `zdiff3` style, it may look like this:    ------------  Here are lines that are either unchanged from the common @@ -308,8 +307,8 @@  And here is another line that is cleanly resolved or unmodified.  ------------   -In addition to the `<<<<<<<`, `=======`, and `>>>>>>>` markers, it uses -another `|||||||` marker that is followed by the original text. You can +In addition to the +<<<<<<<+, `=======`, and +>>>>>>>+ markers, it uses +another +|||||||+ marker that is followed by the original text. You can  tell that the original just stated a fact, and your side simply gave in to  that statement and gave up, while the other side tried to have a more  positive attitude. You can sometimes come up with a better resolution by @@ -390,8 +389,8 @@  CONFIGURATION  -------------   -branch.<name>.mergeOptions:: -	Sets default options for merging into branch <name>. The syntax and +`branch.<name>.mergeOptions`:: +	Sets default options for merging into branch _<name>_. The syntax and 	supported options are the same as those of `git merge`, but option 	values containing whitespace characters are currently not supported.   
diff --git a/git-merge.html b/git-merge.html index 421e243..b9d3af6 100644 --- a/git-merge.html +++ b/git-merge.html 
@@ -452,12 +452,12 @@  <h2 id="_synopsis">SYNOPSIS</h2>  <div class="sectionbody">  <div class="verseblock"> -<pre class="content"><em>git merge</em> [-n] [--stat] [--no-commit] [--squash] [--[no-]edit] - [--no-verify] [-s &lt;strategy&gt;] [-X &lt;strategy-option&gt;] [-S[&lt;keyid&gt;]] - [--[no-]allow-unrelated-histories] - [--[no-]rerere-autoupdate] [-m &lt;msg&gt;] [-F &lt;file&gt;] - [--into-name &lt;branch&gt;] [&lt;commit&gt;&#8230;&#8203;] -<em>git merge</em> (--continue | --abort | --quit)</pre> +<pre class="content"><code>git</code> <code>merge</code> [<code>-n</code>] [<code>--stat</code>] [<code>--no-commit</code>] [<code>--squash</code>] [<code>--</code>[<code>no-</code>]<code>edit</code>] +	[<code>--no-verify</code>] [<code>-s</code> <em>&lt;strategy&gt;</em>] [<code>-X</code> <em>&lt;strategy-option&gt;</em>] [<code>-S</code>[<em>&lt;keyid&gt;</em>]] +	[<code>--</code>[<code>no-</code>]<code>allow-unrelated-histories</code>] +	[<code>--</code>[<code>no-</code>]<code>rerere-autoupdate</code>] [<code>-m</code> <em>&lt;msg&gt;</em>] [<code>-F</code> <em>&lt;file&gt;</em>] +	[<code>--into-name</code> <em>&lt;branch&gt;</em>] [<em>&lt;commit&gt;</em>&#8230;&#8203;] +<code>git</code> <code>merge</code> (<code>--continue</code> | <code>--abort</code> | <code>--quit</code>)</pre>  </div>  </div>  </div> @@ -510,10 +510,19 @@  after the merge was started), <code>git</code> <code>merge</code> <code>--abort</code> will in some cases be  unable to reconstruct the original (pre-merge) changes. Therefore:</p>  </div> -<div class="paragraph"> -<p><strong>Warning</strong>: Running <code>git</code> <code>merge</code> with non-trivial uncommitted changes is +<div class="admonitionblock warning"> +<table> +<tr> +<td class="icon"> +<div class="title">Warning</div> +</td> +<td class="content"> +Running <code>git</code> <code>merge</code> with non-trivial uncommitted changes is  discouraged: while possible, it may leave you in a state that is hard to -back out of in the case of a conflict.</p> +back out of in the case of a conflict. +</td> +</tr> +</table>  </div>  </div>  </div> @@ -522,26 +531,26 @@  <div class="sectionbody">  <div class="dlist">  <dl> -<dt class="hdlist1">--commit</dt> -<dt class="hdlist1">--no-commit</dt> +<dt class="hdlist1"><code>--commit</code></dt> +<dt class="hdlist1"><code>--no-commit</code></dt>  <dd>  <p>Perform the merge and commit the result. This option can -be used to override --no-commit.</p> +be used to override <code>--no-commit</code>.</p>  <div class="paragraph"> -<p>With --no-commit perform the merge and stop just before creating +<p>With <code>--no-commit</code> perform the merge and stop just before creating  a merge commit, to give the user a chance to inspect and further  tweak the merge result before committing.</p>  </div>  <div class="paragraph">  <p>Note that fast-forward updates do not create a merge commit and -therefore there is no way to stop those merges with --no-commit. +therefore there is no way to stop those merges with <code>--no-commit</code>.  Thus, if you want to ensure your branch is not changed or updated -by the merge command, use --no-ff with --no-commit.</p> +by the merge command, use <code>--no-ff</code> with <code>--no-commit</code>.</p>  </div>  </dd> -<dt class="hdlist1">--edit</dt> -<dt class="hdlist1">-e</dt> -<dt class="hdlist1">--no-edit</dt> +<dt class="hdlist1"><code>--edit</code></dt> +<dt class="hdlist1"><code>-e</code></dt> +<dt class="hdlist1"><code>--no-edit</code></dt>  <dd>  <p>	Invoke an editor before committing successful mechanical merge to 	further edit the auto-generated merge message, so that the user @@ -559,7 +568,7 @@  set to <code>no</code> at the beginning of them.</p>  </div>  </dd> -<dt class="hdlist1">--cleanup=&lt;mode&gt;</dt> +<dt class="hdlist1"><code>--cleanup=</code><em>&lt;mode&gt;</em></dt>  <dd>  <p>This option determines how the merge message will be cleaned up before  committing. See <a href="git-commit.html">git-commit(1)</a> for more details. In addition, if @@ -567,9 +576,9 @@  to <code>MERGE_MSG</code> before being passed on to the commit machinery in the  case of a merge conflict.</p>  </dd> -<dt class="hdlist1">--ff</dt> -<dt class="hdlist1">--no-ff</dt> -<dt class="hdlist1">--ff-only</dt> +<dt class="hdlist1"><code>--ff</code></dt> +<dt class="hdlist1"><code>--no-ff</code></dt> +<dt class="hdlist1"><code>--ff-only</code></dt>  <dd>  <p>Specifies how a merge is handled when the merged-in history is  already a descendant of the current history. <code>--ff</code> is the @@ -591,24 +600,24 @@  When not possible, refuse to merge and exit with a non-zero status.</p>  </div>  </dd> -<dt class="hdlist1">-S[&lt;keyid&gt;]</dt> -<dt class="hdlist1">--gpg-sign[=&lt;keyid&gt;]</dt> -<dt class="hdlist1">--no-gpg-sign</dt> +<dt class="hdlist1"><code>-S</code>[<em>&lt;key-id&gt;</em>]</dt> +<dt class="hdlist1"><code>--gpg-sign</code>[<code>=</code><em>&lt;key-id&gt;</em>]</dt> +<dt class="hdlist1"><code>--no-gpg-sign</code></dt>  <dd> -<p>GPG-sign the resulting merge commit. The <code>keyid</code> argument is +<p>GPG-sign the resulting merge commit. The <em>&lt;key-id&gt;</em> argument is  optional and defaults to the committer identity; if specified,  it must be stuck to the option without a space. <code>--no-gpg-sign</code>  is useful to countermand both <code>commit.gpgSign</code> configuration variable,  and earlier <code>--gpg-sign</code>.</p>  </dd> -<dt class="hdlist1">--log[=&lt;n&gt;]</dt> -<dt class="hdlist1">--no-log</dt> +<dt class="hdlist1"><code>--log</code>[<code>=</code><em>&lt;n&gt;</em>]</dt> +<dt class="hdlist1"><code>--no-log</code></dt>  <dd>  <p>In addition to branch names, populate the log message with -one-line descriptions from at most &lt;n&gt; actual commits that are being +one-line descriptions from at most <em>&lt;n&gt;</em> actual commits that are being  merged. See also <a href="git-fmt-merge-msg.html">git-fmt-merge-msg(1)</a>.</p>  <div class="paragraph"> -<p>With --no-log do not list one-line descriptions from the +<p>With <code>--no-log</code> do not list one-line descriptions from the  actual commits being merged.</p>  </div>  </dd> @@ -630,19 +639,19 @@  option on the command line.</p>  </div>  </dd> -<dt class="hdlist1">--stat</dt> -<dt class="hdlist1">-n</dt> -<dt class="hdlist1">--no-stat</dt> +<dt class="hdlist1"><code>--stat</code></dt> +<dt class="hdlist1"><code>-n</code></dt> +<dt class="hdlist1"><code>--no-stat</code></dt>  <dd>  <p>Show a diffstat at the end of the merge. The diffstat is also  controlled by the configuration option merge.stat.</p>  <div class="paragraph"> -<p>With -n or --no-stat do not show a diffstat at the end of the +<p>With <code>-n</code> or <code>--no-stat</code> do not show a diffstat at the end of the  merge.</p>  </div>  </dd> -<dt class="hdlist1">--squash</dt> -<dt class="hdlist1">--no-squash</dt> +<dt class="hdlist1"><code>--squash</code></dt> +<dt class="hdlist1"><code>--no-squash</code></dt>  <dd>  <p>Produce the working tree and index state as if a real merge  happened (except for the merge information), but do not actually @@ -652,21 +661,21 @@  the current branch whose effect is the same as merging another  branch (or more in case of an octopus).</p>  <div class="paragraph"> -<p>With --no-squash perform the merge and commit the result. This -option can be used to override --squash.</p> +<p>With <code>--no-squash</code> perform the merge and commit the result. This +option can be used to override <code>--squash</code>.</p>  </div>  <div class="paragraph"> -<p>With --squash, --commit is not allowed, and will fail.</p> +<p>With <code>--squash</code>, <code>--commit</code> is not allowed, and will fail.</p>  </div>  </dd> -<dt class="hdlist1">--[no-]verify</dt> +<dt class="hdlist1"><code>--</code>[<code>no-</code>]<code>verify</code></dt>  <dd>  <p>By default, the pre-merge and commit-msg hooks are run.  When <code>--no-verify</code> is given, these are bypassed.  See also <a href="githooks.html">githooks(5)</a>.</p>  </dd> -<dt class="hdlist1">-s &lt;strategy&gt;</dt> -<dt class="hdlist1">--strategy=&lt;strategy&gt;</dt> +<dt class="hdlist1"><code>-s</code> <em>&lt;strategy&gt;</em></dt> +<dt class="hdlist1"><code>--strategy=</code><em>&lt;strategy&gt;</em></dt>  <dd>  <p>Use the given merge strategy; can be supplied more than  once to specify them in the order they should be tried. @@ -674,14 +683,14 @@  is used instead (<code>ort</code> when merging a single head,  <code>octopus</code> otherwise).</p>  </dd> -<dt class="hdlist1">-X &lt;option&gt;</dt> -<dt class="hdlist1">--strategy-option=&lt;option&gt;</dt> +<dt class="hdlist1"><code>-X</code> <em>&lt;option&gt;</em></dt> +<dt class="hdlist1"><code>--strategy-option=</code><em>&lt;option&gt;</em></dt>  <dd>  <p>Pass merge strategy specific option through to the merge  strategy.</p>  </dd> -<dt class="hdlist1">--verify-signatures</dt> -<dt class="hdlist1">--no-verify-signatures</dt> +<dt class="hdlist1"><code>--verify-signatures</code></dt> +<dt class="hdlist1"><code>--no-verify-signatures</code></dt>  <dd>  <p>Verify that the tip commit of the side branch being merged is  signed with a valid key, i.e. a key that has a valid uid: in the @@ -689,32 +698,32 @@  a trusted key. If the tip commit of the side branch is not signed  with a valid key, the merge is aborted.</p>  </dd> -<dt class="hdlist1">--summary</dt> -<dt class="hdlist1">--no-summary</dt> +<dt class="hdlist1"><code>--summary</code></dt> +<dt class="hdlist1"><code>--no-summary</code></dt>  <dd> -<p>Synonyms to --stat and --no-stat; these are deprecated and will be +<p>Synonyms to <code>--stat</code> and <code>--no-stat</code>; these are deprecated and will be  removed in the future.</p>  </dd> -<dt class="hdlist1">-q</dt> -<dt class="hdlist1">--quiet</dt> +<dt class="hdlist1"><code>-q</code></dt> +<dt class="hdlist1"><code>--quiet</code></dt>  <dd> -<p>Operate quietly. Implies --no-progress.</p> +<p>Operate quietly. Implies <code>--no-progress</code>.</p>  </dd> -<dt class="hdlist1">-v</dt> -<dt class="hdlist1">--verbose</dt> +<dt class="hdlist1"><code>-v</code></dt> +<dt class="hdlist1"><code>--verbose</code></dt>  <dd>  <p>Be verbose.</p>  </dd> -<dt class="hdlist1">--progress</dt> -<dt class="hdlist1">--no-progress</dt> +<dt class="hdlist1"><code>--progress</code></dt> +<dt class="hdlist1"><code>--no-progress</code></dt>  <dd>  <p>Turn progress on/off explicitly. If neither is specified,  progress is shown if standard error is connected to a terminal.  Note that not all merge strategies may support progress  reporting.</p>  </dd> -<dt class="hdlist1">--autostash</dt> -<dt class="hdlist1">--no-autostash</dt> +<dt class="hdlist1"><code>--autostash</code></dt> +<dt class="hdlist1"><code>--no-autostash</code></dt>  <dd>  <p>Automatically create a temporary stash entry before the operation  begins, record it in the ref <code>MERGE_AUTOSTASH</code> @@ -723,16 +732,16 @@  with care: the final stash application after a successful  merge might result in non-trivial conflicts.</p>  </dd> -<dt class="hdlist1">--allow-unrelated-histories</dt> +<dt class="hdlist1"><code>--allow-unrelated-histories</code></dt>  <dd>  <p>By default, <code>git</code> <code>merge</code> command refuses to merge histories  that do not share a common ancestor. This option can be  used to override this safety when merging histories of two  projects that started their lives independently. As that is  a very rare occasion, no configuration variable to enable -this by default exists and will not be added.</p> +this by default exists or will be added.</p>  </dd> -<dt class="hdlist1">-m &lt;msg&gt;</dt> +<dt class="hdlist1"><code>-m</code> <em>&lt;msg&gt;</em></dt>  <dd>  <p>Set the commit message to be used for the merge commit (in  case one is created).</p> @@ -746,14 +755,14 @@  invocations. The automated message can include the branch description.</p>  </div>  </dd> -<dt class="hdlist1">--into-name &lt;branch&gt;</dt> +<dt class="hdlist1"><code>--into-name</code> <em>&lt;branch&gt;</em></dt>  <dd>  <p>Prepare the default merge message as if merging to the branch  <em>&lt;branch&gt;</em>, instead of the name of the real branch to which  the merge is made.</p>  </dd> -<dt class="hdlist1">-F &lt;file&gt;</dt> -<dt class="hdlist1">--file=&lt;file&gt;</dt> +<dt class="hdlist1"><code>-F</code> <em>&lt;file&gt;</em></dt> +<dt class="hdlist1"><code>--file=</code><em>&lt;file&gt;</em></dt>  <dd>  <p>Read the commit message to be used for the merge commit (in  case one is created).</p> @@ -762,8 +771,8 @@  will be appended to the specified message.</p>  </div>  </dd> -<dt class="hdlist1">--rerere-autoupdate</dt> -<dt class="hdlist1">--no-rerere-autoupdate</dt> +<dt class="hdlist1"><code>--rerere-autoupdate</code></dt> +<dt class="hdlist1"><code>--no-rerere-autoupdate</code></dt>  <dd>  <p>After the rerere mechanism reuses a recorded resolution on  the current conflict to update the files in the working @@ -773,13 +782,13 @@  mismerges, before committing the result to the index with a  separate <code>git</code> <code>add</code>.</p>  </dd> -<dt class="hdlist1">--overwrite-ignore</dt> -<dt class="hdlist1">--no-overwrite-ignore</dt> +<dt class="hdlist1"><code>--overwrite-ignore</code></dt> +<dt class="hdlist1"><code>--no-overwrite-ignore</code></dt>  <dd>  <p>Silently overwrite ignored files from the merge result. This  is the default behavior. Use <code>--no-overwrite-ignore</code> to abort.</p>  </dd> -<dt class="hdlist1">--abort</dt> +<dt class="hdlist1"><code>--abort</code></dt>  <dd>  <p>Abort the current conflict resolution process, and  try to reconstruct the pre-merge state. If an autostash entry is @@ -798,19 +807,19 @@  list.</p>  </div>  </dd> -<dt class="hdlist1">--quit</dt> +<dt class="hdlist1"><code>--quit</code></dt>  <dd>  <p>Forget about the current merge in progress. Leave the index  and the working tree as-is. If <code>MERGE_AUTOSTASH</code> is present, the  stash entry will be saved to the stash list.</p>  </dd> -<dt class="hdlist1">--continue</dt> +<dt class="hdlist1"><code>--continue</code></dt>  <dd>  <p>After a <code>git</code> <code>merge</code> stops due to conflicts you can conclude the  merge by running <code>git</code> <code>merge</code> <code>--continue</code> (see "HOW TO RESOLVE  CONFLICTS" section below).</p>  </dd> -<dt class="hdlist1">&lt;commit&gt;&#8230;&#8203;</dt> +<dt class="hdlist1"><em>&lt;commit&gt;</em>...</dt>  <dd>  <p>Commits, usually other branch heads, to merge into our branch.  Specifying more than one commit will create a merge with @@ -846,7 +855,7 @@  <code>git</code> <code>pull</code> and <code>git</code> <code>merge</code> will also abort if there are any changes  registered in the index relative to the <code>HEAD</code> commit. (Special  narrow exceptions to this rule may exist depending on which merge -strategy is in use, but generally, the index must match HEAD.)</p> +strategy is in use, but generally, the index must match <code>HEAD</code>.)</p>  </div>  <div class="paragraph">  <p>If all named commits are already ancestors of <code>HEAD</code>, <code>git</code> <code>merge</code> @@ -914,7 +923,7 @@  <p>A ref named <code>AUTO_MERGE</code> is written, pointing to a tree  corresponding to the current content of the working tree (including  conflict markers for textual conflicts). Note that this ref is only -written when the <em>ort</em> merge strategy is used (the default).</p> +written when the <code>ort</code> merge strategy is used (the default).</p>  </li>  <li>  <p>No other changes are made. In particular, the local @@ -1003,7 +1012,7 @@  </div>  <div class="paragraph">  <p>An alternative style can be used by setting the <code>merge.conflictStyle</code> -configuration variable to either "diff3" or "zdiff3". In "diff3" +configuration variable to either <code>diff3</code> or <code>zdiff3</code>. In <code>diff3</code>  style, the above conflict may look like this:</p>  </div>  <div class="listingblock"> @@ -1025,7 +1034,7 @@  </div>  </div>  <div class="paragraph"> -<p>while in "zdiff3" style, it may look like this:</p> +<p>while in <code>zdiff3</code> style, it may look like this:</p>  </div>  <div class="listingblock">  <div class="content"> @@ -1164,7 +1173,7 @@  </div>  <div class="dlist">  <dl> -<dt class="hdlist1">ort</dt> +<dt class="hdlist1"><code>ort</code></dt>  <dd>  <p>This is the default merge strategy when pulling or merging one  branch. This strategy can only resolve two heads using a @@ -1189,31 +1198,31 @@  ones, if one exists.</p>  </div>  <div class="paragraph"> -<p>The <em>ort</em> strategy can take the following options:</p> +<p>The <code>ort</code> strategy can take the following options:</p>  </div>  <div class="dlist">  <dl> -<dt class="hdlist1">ours</dt> +<dt class="hdlist1"><code>ours</code></dt>  <dd>  <p>This option forces conflicting hunks to be auto-resolved cleanly by  favoring <em>our</em> version. Changes from the other tree that do not  conflict with our side are reflected in the merge result.  For a binary file, the entire contents are taken from our side.</p>  <div class="paragraph"> -<p>This should not be confused with the <em>ours</em> merge strategy, which does not +<p>This should not be confused with the <code>ours</code> merge strategy, which does not  even look at what the other tree contains at all. It discards everything  the other tree did, declaring <em>our</em> history contains all that happened in it.</p>  </div>  </dd> -<dt class="hdlist1">theirs</dt> +<dt class="hdlist1"><code>theirs</code></dt>  <dd> -<p>This is the opposite of <em>ours</em>; note that, unlike <em>ours</em>, there is -no <em>theirs</em> merge strategy to confuse this merge option with.</p> +<p>This is the opposite of <code>ours</code>; note that, unlike <code>ours</code>, there is +no <code>theirs</code> merge strategy to confuse this merge option with.</p>  </dd> -<dt class="hdlist1">ignore-space-change</dt> -<dt class="hdlist1">ignore-all-space</dt> -<dt class="hdlist1">ignore-space-at-eol</dt> -<dt class="hdlist1">ignore-cr-at-eol</dt> +<dt class="hdlist1"><code>ignore-space-change</code></dt> +<dt class="hdlist1"><code>ignore-all-space</code></dt> +<dt class="hdlist1"><code>ignore-space-at-eol</code></dt> +<dt class="hdlist1"><code>ignore-cr-at-eol</code></dt>  <dd>  <p>Treats lines with the indicated type of whitespace change as  unchanged for the sake of a three-way merge. Whitespace @@ -1236,7 +1245,7 @@  </ul>  </div>  </dd> -<dt class="hdlist1">renormalize</dt> +<dt class="hdlist1"><code>renormalize</code></dt>  <dd>  <p>This runs a virtual check-out and check-in of all three stages  of any file which needs a three-way merge. This option is @@ -1245,37 +1254,37 @@  branches with differing checkin/checkout attributes" in  <a href="gitattributes.html">gitattributes(5)</a> for details.</p>  </dd> -<dt class="hdlist1">no-renormalize</dt> +<dt class="hdlist1"><code>no-renormalize</code></dt>  <dd>  <p>Disables the <code>renormalize</code> option. This overrides the  <code>merge.renormalize</code> configuration variable.</p>  </dd> -<dt class="hdlist1">find-renames[=&lt;n&gt;]</dt> +<dt class="hdlist1"><code>find-renames</code>[<code>=</code><em>&lt;n&gt;</em>]</dt>  <dd>  <p>Turn on rename detection, optionally setting the similarity  threshold. This is the default. This overrides the -<em>merge.renames</em> configuration variable. +<code>merge.renames</code> configuration variable.  See also <a href="git-diff.html">git-diff(1)</a> <code>--find-renames</code>.</p>  </dd> -<dt class="hdlist1">rename-threshold=&lt;n&gt;</dt> +<dt class="hdlist1"><code>rename-threshold=</code><em>&lt;n&gt;</em></dt>  <dd>  <p>Deprecated synonym for <code>find-renames=</code><em>&lt;n&gt;</em>.</p>  </dd> -<dt class="hdlist1">no-renames</dt> +<dt class="hdlist1"><code>no-renames</code></dt>  <dd>  <p>Turn off rename detection. This overrides the <code>merge.renames</code>  configuration variable.  See also <a href="git-diff.html">git-diff(1)</a> <code>--no-renames</code>.</p>  </dd> -<dt class="hdlist1">histogram</dt> +<dt class="hdlist1"><code>histogram</code></dt>  <dd>  <p>Deprecated synonym for <code>diff-algorithm=histogram</code>.</p>  </dd> -<dt class="hdlist1">patience</dt> +<dt class="hdlist1"><code>patience</code></dt>  <dd>  <p>Deprecated synonym for <code>diff-algorithm=patience</code>.</p>  </dd> -<dt class="hdlist1">diff-algorithm=[histogram|minimal|myers|patience]</dt> +<dt class="hdlist1"><code>diff-algorithm=</code>(<code>histogram</code>|<code>minimal</code>|<code>myers</code>|<code>patience</code>)</dt>  <dd>  <p>Use a different diff algorithm while merging, which can help  avoid mismerges that occur due to unimportant matching lines @@ -1284,7 +1293,7 @@  defaults to <code>diff-algorithm=histogram</code>, while regular diffs  currently default to the <code>diff.algorithm</code> config setting.</p>  </dd> -<dt class="hdlist1">subtree[=&lt;path&gt;]</dt> +<dt class="hdlist1"><code>subtree</code>[<code>=</code><em>&lt;path&gt;</em>]</dt>  <dd>  <p>This option is a more advanced form of <em>subtree</em> strategy, where  the strategy makes a guess on how two trees must be shifted to @@ -1295,7 +1304,7 @@  </dl>  </div>  </dd> -<dt class="hdlist1">recursive</dt> +<dt class="hdlist1"><code>recursive</code></dt>  <dd>  <p>This is now a synonym for <code>ort</code>. It was an alternative  implementation until v2.49.0, but was redirected to mean <code>ort</code> @@ -1303,14 +1312,14 @@  strategy for resolving two heads from Git v0.99.9k until  v2.33.0.</p>  </dd> -<dt class="hdlist1">resolve</dt> +<dt class="hdlist1"><code>resolve</code></dt>  <dd>  <p>This can only resolve two heads (i.e. the current branch  and another branch you pulled from) using a 3-way merge  algorithm. It tries to carefully detect criss-cross  merge ambiguities. It does not handle renames.</p>  </dd> -<dt class="hdlist1">octopus</dt> +<dt class="hdlist1"><code>octopus</code></dt>  <dd>  <p>This resolves cases with more than two heads, but refuses to do  a complex merge that needs manual resolution. It is @@ -1318,16 +1327,16 @@  heads together. This is the default merge strategy when  pulling or merging more than one branch.</p>  </dd> -<dt class="hdlist1">ours</dt> +<dt class="hdlist1"><code>ours</code></dt>  <dd>  <p>This resolves any number of heads, but the resulting tree of the  merge is always that of the current branch head, effectively  ignoring all changes from all other branches. It is meant to  be used to supersede old development history of side -branches. Note that this is different from the -Xours option to -the <em>ort</em> merge strategy.</p> +branches. Note that this is different from the <code>-Xours</code> option to +the <code>ort</code> merge strategy.</p>  </dd> -<dt class="hdlist1">subtree</dt> +<dt class="hdlist1"><code>subtree</code></dt>  <dd>  <p>This is a modified <code>ort</code> strategy. When merging trees A and  B, if B corresponds to a subtree of A, B is first adjusted to @@ -1338,7 +1347,7 @@  </dl>  </div>  <div class="paragraph"> -<p>With the strategies that use 3-way merge (including the default, <em>ort</em>), +<p>With the strategies that use 3-way merge (including the default, <code>ort</code>),  if a change is made on both branches, but later reverted on one of the  branches, that change will be present in the merged result; some people find  this behavior confusing. It occurs because only the heads and the merge base @@ -1353,9 +1362,9 @@  <div class="sectionbody">  <div class="dlist">  <dl> -<dt class="hdlist1">branch.&lt;name&gt;.mergeOptions</dt> +<dt class="hdlist1"><code>branch.</code><em>&lt;name&gt;</em><code>.mergeOptions</code></dt>  <dd> -<p>Sets default options for merging into branch &lt;name&gt;. The syntax and +<p>Sets default options for merging into branch <em>&lt;name&gt;</em>. The syntax and  supported options are the same as those of <code>git</code> <code>merge</code>, but option  values containing whitespace characters are currently not supported.</p>  </dd> @@ -1368,7 +1377,7 @@  </div>  <div class="dlist">  <dl> -<dt class="hdlist1">merge.conflictStyle</dt> +<dt class="hdlist1"><code>merge.conflictStyle</code></dt>  <dd>  <p>Specify the style in which conflicted hunks are written out to  working tree files upon merge. The default is "merge", which @@ -1384,18 +1393,18 @@  the conflict region when those matching lines appear near either  the beginning or end of a conflict region.</p>  </dd> -<dt class="hdlist1">merge.defaultToUpstream</dt> +<dt class="hdlist1"><code>merge.defaultToUpstream</code></dt>  <dd>  <p>If merge is called without any commit argument, merge the upstream  branches configured for the current branch by using their last  observed values stored in their remote-tracking branches.  The values of the <code>branch.</code>&lt;current <code>branch</code>&gt;<code>.merge</code> that name the -branches at the remote named by <code>branch.</code>&lt;current <code>branch</code>&gt;<code>.remote</code> +branches at the remote named by <code>branch.</code><em>&lt;current-branch&gt;</em><code>.remote</code>  are consulted, and then they are mapped via <code>remote.</code><em>&lt;remote&gt;</em><code>.fetch</code>  to their corresponding remote-tracking branches, and the tips of  these tracking branches are merged. Defaults to true.</p>  </dd> -<dt class="hdlist1">merge.ff</dt> +<dt class="hdlist1"><code>merge.ff</code></dt>  <dd>  <p>By default, Git does not create an extra merge commit when merging  a commit that is a descendant of the current commit. Instead, the @@ -1406,30 +1415,30 @@  allowed (equivalent to giving the <code>--ff-only</code> option from the  command line).</p>  </dd> -<dt class="hdlist1">merge.verifySignatures</dt> +<dt class="hdlist1"><code>merge.verifySignatures</code></dt>  <dd> -<p>If true, this is equivalent to the --verify-signatures command +<p>If true, this is equivalent to the <code>--verify-signatures</code> command  line option. See <a href="git-merge.html">git-merge(1)</a> for details.</p>  </dd> -<dt class="hdlist1">merge.branchdesc</dt> +<dt class="hdlist1"><code>merge.branchdesc</code></dt>  <dd>  <p>In addition to branch names, populate the log message with  the branch description text associated with them. Defaults  to false.</p>  </dd> -<dt class="hdlist1">merge.log</dt> +<dt class="hdlist1"><code>merge.log</code></dt>  <dd>  <p>In addition to branch names, populate the log message with at  most the specified number of one-line descriptions from the  actual commits that are being merged. Defaults to false, and  true is a synonym for 20.</p>  </dd> -<dt class="hdlist1">merge.suppressDest</dt> +<dt class="hdlist1"><code>merge.suppressDest</code></dt>  <dd>  <p>By adding a glob that matches the names of integration  branches to this multi-valued configuration variable, the  default merge message computed for merges into these -integration branches will omit "into &lt;branch name&gt;" from +integration branches will omit "into <em>&lt;branch-name&gt;</em>" from  its title.</p>  <div class="paragraph">  <p>An element with an empty value can be used to clear the list @@ -1438,40 +1447,59 @@  default value of <code>master</code> is used for backward compatibility.</p>  </div>  </dd> -<dt class="hdlist1">merge.renameLimit</dt> +<dt class="hdlist1"><code>merge.renameLimit</code></dt>  <dd>  <p>The number of files to consider in the exhaustive portion of  rename detection during a merge. If not specified, defaults -to the value of diff.renameLimit. If neither -merge.renameLimit nor diff.renameLimit are specified, +to the value of <code>diff.renameLimit</code>. If neither +<code>merge.renameLimit</code> nor <code>diff.renameLimit</code> are specified,  currently defaults to 7000. This setting has no effect if  rename detection is turned off.</p>  </dd> -<dt class="hdlist1">merge.renames</dt> +<dt class="hdlist1"><code>merge.renames</code></dt>  <dd> -<p>Whether Git detects renames. If set to "false", rename detection -is disabled. If set to "true", basic rename detection is enabled. +<p>Whether Git detects renames. If set to <code>false</code>, rename detection +is disabled. If set to <code>true</code>, basic rename detection is enabled.  Defaults to the value of diff.renames.</p>  </dd> -<dt class="hdlist1">merge.directoryRenames</dt> +<dt class="hdlist1"><code>merge.directoryRenames</code></dt>  <dd>  <p>Whether Git detects directory renames, affecting what happens at  merge time to new files added to a directory on one side of  history when that directory was renamed on the other side of -history. If merge.directoryRenames is set to "false", directory -rename detection is disabled, meaning that such new files will be -left behind in the old directory. If set to "true", directory -rename detection is enabled, meaning that such new files will be -moved into the new directory. If set to "conflict", a conflict -will be reported for such paths. If merge.renames is false, -merge.directoryRenames is ignored and treated as false. Defaults -to "conflict".</p> +history. Possible values are:</p> +<div class="openblock"> +<div class="content"> +<div class="dlist"> +<dl> +<dt class="hdlist1"><code>false</code></dt> +<dd> +<p>Directory rename detection is disabled, meaning that such new files will be +left behind in the old directory.</p>  </dd> -<dt class="hdlist1">merge.renormalize</dt> +<dt class="hdlist1"><code>true</code></dt> +<dd> +<p>Directory rename detection is enabled, meaning that such new files will be +moved into the new directory.</p> +</dd> +<dt class="hdlist1"><code>conflict</code></dt> +<dd> +<p>A conflict will be reported for such paths.</p> +</dd> +</dl> +</div> +</div> +</div> +<div class="paragraph"> +<p>If <code>merge.renames</code> is <code>false</code>, <code>merge.directoryRenames</code> is ignored and treated +as <code>false</code>. Defaults to <code>conflict</code>.</p> +</div> +</dd> +<dt class="hdlist1"><code>merge.renormalize</code></dt>  <dd>  <p>Tell Git that canonical representation of files in the  repository has changed over time (e.g. earlier commits record -text files with CRLF line endings, but recent ones use LF line +text files with <em>CRLF</em> line endings, but recent ones use <em>LF</em> line  endings). In such a repository, for each file where a  three-way content merge is needed, Git can convert the data  recorded in commits to a canonical form before performing a @@ -1479,35 +1507,35 @@  see section "Merging branches with differing checkin/checkout  attributes" in <a href="gitattributes.html">gitattributes(5)</a>.</p>  </dd> -<dt class="hdlist1">merge.stat</dt> +<dt class="hdlist1"><code>merge.stat</code></dt>  <dd> -<p>Whether to print the diffstat between ORIG_HEAD and the merge result +<p>Whether to print the diffstat between <code>ORIG_HEAD</code> and the merge result  at the end of the merge. True by default.</p>  </dd> -<dt class="hdlist1">merge.autoStash</dt> +<dt class="hdlist1"><code>merge.autoStash</code></dt>  <dd> -<p>When set to true, automatically create a temporary stash entry +<p>When set to <code>true</code>, automatically create a temporary stash entry  before the operation begins, and apply it after the operation  ends. This means that you can run merge on a dirty worktree.  However, use with care: the final stash application after a  successful merge might result in non-trivial conflicts.  This option can be overridden by the <code>--no-autostash</code> and  <code>--autostash</code> options of <a href="git-merge.html">git-merge(1)</a>. -Defaults to false.</p> +Defaults to <code>false</code>.</p>  </dd> -<dt class="hdlist1">merge.tool</dt> +<dt class="hdlist1"><code>merge.tool</code></dt>  <dd>  <p>Controls which merge tool is used by <a href="git-mergetool.html">git-mergetool(1)</a>.  The list below shows the valid built-in values.  Any other value is treated as a custom merge tool and requires -that a corresponding mergetool.&lt;tool&gt;.cmd variable is defined.</p> +that a corresponding <code>mergetool.</code><em>&lt;tool&gt;</em><code>.cmd</code> variable is defined.</p>  </dd> -<dt class="hdlist1">merge.guitool</dt> +<dt class="hdlist1"><code>merge.guitool</code></dt>  <dd>  <p>Controls which merge tool is used by <a href="git-mergetool.html">git-mergetool(1)</a> when the --g/--gui flag is specified. The list below shows the valid built-in values. +<code>-g</code>/<code>--gui</code> flag is specified. The list below shows the valid built-in values.  Any other value is treated as a custom merge tool and requires that a -corresponding mergetool.&lt;guitool&gt;.cmd variable is defined.</p> +corresponding <code>mergetool.</code><em>&lt;guitool&gt;</em><code>.cmd</code> variable is defined.</p>  <div class="dlist">  <dl>  <dt class="hdlist1"><code>araxis</code></dt> @@ -1649,7 +1677,7 @@  </dl>  </div>  </dd> -<dt class="hdlist1">merge.verbosity</dt> +<dt class="hdlist1"><code>merge.verbosity</code></dt>  <dd>  <p>Controls the amount of output shown by the recursive merge  strategy. Level 0 outputs nothing except a final error @@ -1658,17 +1686,17 @@  above outputs debugging information. The default is level 2.  Can be overridden by the <code>GIT_MERGE_VERBOSITY</code> environment variable.</p>  </dd> -<dt class="hdlist1">merge.&lt;driver&gt;.name</dt> +<dt class="hdlist1"><code>merge.</code><em>&lt;driver&gt;</em><code>.name</code></dt>  <dd>  <p>Defines a human-readable name for a custom low-level  merge driver. See <a href="gitattributes.html">gitattributes(5)</a> for details.</p>  </dd> -<dt class="hdlist1">merge.&lt;driver&gt;.driver</dt> +<dt class="hdlist1"><code>merge.</code><em>&lt;driver&gt;</em><code>.driver</code></dt>  <dd>  <p>Defines the command that implements a custom low-level  merge driver. See <a href="gitattributes.html">gitattributes(5)</a> for details.</p>  </dd> -<dt class="hdlist1">merge.&lt;driver&gt;.recursive</dt> +<dt class="hdlist1"><code>merge.</code><em>&lt;driver&gt;</em><code>.recursive</code></dt>  <dd>  <p>Names a low-level merge driver to be used when  performing an internal merge between common ancestors. @@ -1702,7 +1730,7 @@  </div>  <div id="footer">  <div id="footer-text"> -Last updated 2025-02-14 21:38:14 -0800 +Last updated 2025-06-02 12:42:06 -0700  </div>  </div>  </body> 
diff --git a/git-mergetool.adoc b/git-mergetool.adoc index 046c325..77d0b50 100644 --- a/git-mergetool.adoc +++ b/git-mergetool.adoc 
@@ -7,95 +7,95 @@    SYNOPSIS  -------- -[verse] -'git mergetool' [--tool=<tool>] [-y | --[no-]prompt] [<file>...] +[synopsis] +git mergetool [--tool=<tool>] [-y | --[no-]prompt] [<file>...]    DESCRIPTION  -----------    Use `git mergetool` to run one of several merge utilities to resolve -merge conflicts. It is typically run after 'git merge'. +merge conflicts. It is typically run after `git merge`.    If one or more <file> parameters are given, the merge tool program will  be run to resolve differences in each file (skipping those without  conflicts). Specifying a directory will include all unresolved files in -that path. If no <file> names are specified, 'git mergetool' will run +that path. If no _<file>_ names are specified, `git mergetool` will run  the merge tool program on every file with merge conflicts.    OPTIONS  ------- --t <tool>:: ---tool=<tool>:: -	Use the merge resolution program specified by <tool>. -	Valid values include emerge, gvimdiff, kdiff3, -	meld, vimdiff, and tortoisemerge. Run `git mergetool --tool-help` -	for the list of valid <tool> settings. +`-t <tool>`:: +`--tool=<tool>`:: +	Use the merge resolution program specified by _<tool>_. +	Valid values include `emerge`, `gvimdiff`, `kdiff3`, +	`meld`, `vimdiff`, and `tortoisemerge`. Run `git mergetool --tool-help` +	for the list of valid _<tool>_ settings.  + -If a merge resolution program is not specified, 'git mergetool' +If a merge resolution program is not specified, `git mergetool`  will use the configuration variable `merge.tool`. If the -configuration variable `merge.tool` is not set, 'git mergetool' +configuration variable `merge.tool` is not set, `git mergetool`  will pick a suitable default.  +  You can explicitly provide a full path to the tool by setting the  configuration variable `mergetool.<tool>.path`. For example, you  can configure the absolute path to kdiff3 by setting -`mergetool.kdiff3.path`. Otherwise, 'git mergetool' assumes the -tool is available in PATH. +`mergetool.kdiff3.path`. Otherwise, `git mergetool` assumes the +tool is available in `$PATH`.  +  Instead of running one of the known merge tool programs, -'git mergetool' can be customized to run an alternative program +`git mergetool` can be customized to run an alternative program  by specifying the command line to invoke in a configuration  variable `mergetool.<tool>.cmd`.  + -When 'git mergetool' is invoked with this tool (either through the +When `git mergetool` is invoked with this tool (either through the  `-t` or `--tool` option or the `merge.tool` configuration -variable), the configured command line will be invoked with `$BASE` +variable), the configured command line will be invoked with `BASE`  set to the name of a temporary file containing the common base for -the merge, if available; `$LOCAL` set to the name of a temporary +the merge, if available; `LOCAL` set to the name of a temporary  file containing the contents of the file on the current branch; -`$REMOTE` set to the name of a temporary file containing the -contents of the file to be merged, and `$MERGED` set to the name +`REMOTE` set to the name of a temporary file containing the +contents of the file to be merged, and `MERGED` set to the name  of the file to which the merge tool should write the result of the  merge resolution.  +  If the custom merge tool correctly indicates the success of a  merge resolution with its exit code, then the configuration  variable `mergetool.<tool>.trustExitCode` can be set to `true`. -Otherwise, 'git mergetool' will prompt the user to indicate the +Otherwise, `git mergetool` will prompt the user to indicate the  success of the resolution after the custom tool has exited.   ---tool-help:: +`--tool-help`:: 	Print a list of merge tools that may be used with `--tool`.   --y:: ---no-prompt:: +`-y`:: +`--no-prompt`:: 	Don't prompt before each invocation of the merge resolution 	program. 	This is the default if the merge resolution program is 	explicitly specified with the `--tool` option or with the 	`merge.tool` configuration variable.   ---prompt:: +`--prompt`:: 	Prompt before each invocation of the merge resolution program 	to give the user a chance to skip the path.   --g:: ---gui:: -	When 'git-mergetool' is invoked with the `-g` or `--gui` option, +`-g`:: +`--gui`:: +	When `git-mergetool` is invoked with the `-g` or `--gui` option, 	the default merge tool will be read from the configured 	`merge.guitool` variable instead of `merge.tool`. If 	`merge.guitool` is not set, we will fallback to the tool 	configured under `merge.tool`. This may be autoselected using 	the configuration variable `mergetool.guiDefault`.   ---no-gui:: +`--no-gui`:: 	This overrides a previous `-g` or `--gui` setting or 	`mergetool.guiDefault` configuration and reads the default merge 	tool from the configured `merge.tool` variable.   --O<orderfile>:: +`-O<orderfile>`:: 	Process files in the order specified in the -	<orderfile>, which has one shell glob pattern per line. +	_<orderfile>_, which has one shell glob pattern per line. 	This overrides the `diff.orderFile` configuration variable 	(see linkgit:git-config[1]). To cancel `diff.orderFile`, 	use `-O/dev/null`. 
diff --git a/git-mergetool.html b/git-mergetool.html index 650cfe6..92cea8f 100644 --- a/git-mergetool.html +++ b/git-mergetool.html 
@@ -452,7 +452,7 @@  <h2 id="_synopsis">SYNOPSIS</h2>  <div class="sectionbody">  <div class="verseblock"> -<pre class="content"><em>git mergetool</em> [--tool=&lt;tool&gt;] [-y | --[no-]prompt] [&lt;file&gt;&#8230;&#8203;]</pre> +<pre class="content"><code>git</code> <code>mergetool</code> [<code>--tool=</code><em>&lt;tool&gt;</em>] [<code>-y</code> | <code>--</code>[<code>no-</code>]<code>prompt</code>] [<em>&lt;file&gt;</em>&#8230;&#8203;]</pre>  </div>  </div>  </div> @@ -461,13 +461,13 @@  <div class="sectionbody">  <div class="paragraph">  <p>Use <code>git</code> <code>mergetool</code> to run one of several merge utilities to resolve -merge conflicts. It is typically run after <em>git merge</em>.</p> +merge conflicts. It is typically run after <code>git</code> <code>merge</code>.</p>  </div>  <div class="paragraph">  <p>If one or more &lt;file&gt; parameters are given, the merge tool program will  be run to resolve differences in each file (skipping those without  conflicts). Specifying a directory will include all unresolved files in -that path. If no &lt;file&gt; names are specified, <em>git mergetool</em> will run +that path. If no <em>&lt;file&gt;</em> names are specified, <code>git</code> <code>mergetool</code> will run  the merge tool program on every file with merge conflicts.</p>  </div>  </div> @@ -477,41 +477,41 @@  <div class="sectionbody">  <div class="dlist">  <dl> -<dt class="hdlist1">-t &lt;tool&gt;</dt> -<dt class="hdlist1">--tool=&lt;tool&gt;</dt> +<dt class="hdlist1"><code>-t</code> <em>&lt;tool&gt;</em></dt> +<dt class="hdlist1"><code>--tool=</code><em>&lt;tool&gt;</em></dt>  <dd> -<p>Use the merge resolution program specified by &lt;tool&gt;. -Valid values include emerge, gvimdiff, kdiff3, -meld, vimdiff, and tortoisemerge. Run <code>git</code> <code>mergetool</code> <code>--tool-help</code> -for the list of valid &lt;tool&gt; settings.</p> +<p>Use the merge resolution program specified by <em>&lt;tool&gt;</em>. +Valid values include <code>emerge</code>, <code>gvimdiff</code>, <code>kdiff3</code>, +<code>meld</code>, <code>vimdiff</code>, and <code>tortoisemerge</code>. Run <code>git</code> <code>mergetool</code> <code>--tool-help</code> +for the list of valid <em>&lt;tool&gt;</em> settings.</p>  <div class="paragraph"> -<p>If a merge resolution program is not specified, <em>git mergetool</em> +<p>If a merge resolution program is not specified, <code>git</code> <code>mergetool</code>  will use the configuration variable <code>merge.tool</code>. If the -configuration variable <code>merge.tool</code> is not set, <em>git mergetool</em> +configuration variable <code>merge.tool</code> is not set, <code>git</code> <code>mergetool</code>  will pick a suitable default.</p>  </div>  <div class="paragraph">  <p>You can explicitly provide a full path to the tool by setting the  configuration variable <code>mergetool.</code><em>&lt;tool&gt;</em><code>.path</code>. For example, you  can configure the absolute path to kdiff3 by setting -<code>mergetool.kdiff3.path</code>. Otherwise, <em>git mergetool</em> assumes the -tool is available in PATH.</p> +<code>mergetool.kdiff3.path</code>. Otherwise, <code>git</code> <code>mergetool</code> assumes the +tool is available in <code>$PATH</code>.</p>  </div>  <div class="paragraph">  <p>Instead of running one of the known merge tool programs, -<em>git mergetool</em> can be customized to run an alternative program +<code>git</code> <code>mergetool</code> can be customized to run an alternative program  by specifying the command line to invoke in a configuration  variable <code>mergetool.</code><em>&lt;tool&gt;</em><code>.cmd</code>.</p>  </div>  <div class="paragraph"> -<p>When <em>git mergetool</em> is invoked with this tool (either through the +<p>When <code>git</code> <code>mergetool</code> is invoked with this tool (either through the  <code>-t</code> or <code>--tool</code> option or the <code>merge.tool</code> configuration -variable), the configured command line will be invoked with <code>$BASE</code> +variable), the configured command line will be invoked with <code>BASE</code>  set to the name of a temporary file containing the common base for -the merge, if available; <code>$LOCAL</code> set to the name of a temporary +the merge, if available; <code>LOCAL</code> set to the name of a temporary  file containing the contents of the file on the current branch; -<code>$REMOTE</code> set to the name of a temporary file containing the -contents of the file to be merged, and <code>$MERGED</code> set to the name +<code>REMOTE</code> set to the name of a temporary file containing the +contents of the file to be merged, and <code>MERGED</code> set to the name  of the file to which the merge tool should write the result of the  merge resolution.</p>  </div> @@ -519,16 +519,16 @@  <p>If the custom merge tool correctly indicates the success of a  merge resolution with its exit code, then the configuration  variable <code>mergetool.</code><em>&lt;tool&gt;</em><code>.trustExitCode</code> can be set to <code>true</code>. -Otherwise, <em>git mergetool</em> will prompt the user to indicate the +Otherwise, <code>git</code> <code>mergetool</code> will prompt the user to indicate the  success of the resolution after the custom tool has exited.</p>  </div>  </dd> -<dt class="hdlist1">--tool-help</dt> +<dt class="hdlist1"><code>--tool-help</code></dt>  <dd>  <p>Print a list of merge tools that may be used with <code>--tool</code>.</p>  </dd> -<dt class="hdlist1">-y</dt> -<dt class="hdlist1">--no-prompt</dt> +<dt class="hdlist1"><code>-y</code></dt> +<dt class="hdlist1"><code>--no-prompt</code></dt>  <dd>  <p>Don&#8217;t prompt before each invocation of the merge resolution  program. @@ -536,31 +536,31 @@  explicitly specified with the <code>--tool</code> option or with the  <code>merge.tool</code> configuration variable.</p>  </dd> -<dt class="hdlist1">--prompt</dt> +<dt class="hdlist1"><code>--prompt</code></dt>  <dd>  <p>Prompt before each invocation of the merge resolution program  to give the user a chance to skip the path.</p>  </dd> -<dt class="hdlist1">-g</dt> -<dt class="hdlist1">--gui</dt> +<dt class="hdlist1"><code>-g</code></dt> +<dt class="hdlist1"><code>--gui</code></dt>  <dd> -<p>When <em>git-mergetool</em> is invoked with the <code>-g</code> or <code>--gui</code> option, +<p>When <code>git-mergetool</code> is invoked with the <code>-g</code> or <code>--gui</code> option,  the default merge tool will be read from the configured  <code>merge.guitool</code> variable instead of <code>merge.tool</code>. If  <code>merge.guitool</code> is not set, we will fallback to the tool  configured under <code>merge.tool</code>. This may be autoselected using  the configuration variable <code>mergetool.guiDefault</code>.</p>  </dd> -<dt class="hdlist1">--no-gui</dt> +<dt class="hdlist1"><code>--no-gui</code></dt>  <dd>  <p>This overrides a previous <code>-g</code> or <code>--gui</code> setting or  <code>mergetool.guiDefault</code> configuration and reads the default merge  tool from the configured <code>merge.tool</code> variable.</p>  </dd> -<dt class="hdlist1">-O&lt;orderfile&gt;</dt> +<dt class="hdlist1"><code>-O</code><em>&lt;orderfile&gt;</em></dt>  <dd>  <p>Process files in the order specified in the -&lt;orderfile&gt;, which has one shell glob pattern per line. +<em>&lt;orderfile&gt;</em>, which has one shell glob pattern per line.  This overrides the <code>diff.orderFile</code> configuration variable  (see <a href="git-config.html">git-config(1)</a>). To cancel <code>diff.orderFile</code>,  use <code>-O/dev/null</code>.</p> @@ -579,30 +579,30 @@  </div>  <div class="dlist">  <dl> -<dt class="hdlist1">mergetool.&lt;tool&gt;.path</dt> +<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.path</code></dt>  <dd>  <p>Override the path for the given tool. This is useful in case -your tool is not in the PATH.</p> +your tool is not in the <code>$PATH</code>.</p>  </dd> -<dt class="hdlist1">mergetool.&lt;tool&gt;.cmd</dt> +<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.cmd</code></dt>  <dd>  <p>Specify the command to invoke the specified merge tool. The  specified command is evaluated in shell with the following -variables available: <em>BASE</em> is the name of a temporary file +variables available: <code>BASE</code> is the name of a temporary file  containing the common base of the files to be merged, if available; -<em>LOCAL</em> is the name of a temporary file containing the contents of -the file on the current branch; <em>REMOTE</em> is the name of a temporary +<code>LOCAL</code> is the name of a temporary file containing the contents of +the file on the current branch; <code>REMOTE</code> is the name of a temporary  file containing the contents of the file from the branch being -merged; <em>MERGED</em> contains the name of the file to which the merge +merged; <code>MERGED</code> contains the name of the file to which the merge  tool should write the results of a successful merge.</p>  </dd> -<dt class="hdlist1">mergetool.&lt;tool&gt;.hideResolved</dt> +<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.hideResolved</code></dt>  <dd>  <p>Allows the user to override the global <code>mergetool.hideResolved</code> value  for a specific tool. See <code>mergetool.hideResolved</code> for the full  description.</p>  </dd> -<dt class="hdlist1">mergetool.&lt;tool&gt;.trustExitCode</dt> +<dt class="hdlist1"><code>mergetool.</code><em>&lt;tool&gt;</em><code>.trustExitCode</code></dt>  <dd>  <p>For a custom merge command, specify whether the exit code of  the merge command can be used to determine whether the merge was @@ -611,7 +611,7 @@  if the file has been updated; otherwise, the user is prompted to  indicate the success of the merge.</p>  </dd> -<dt class="hdlist1">mergetool.meld.hasOutput</dt> +<dt class="hdlist1"><code>mergetool.meld.hasOutput</code></dt>  <dd>  <p>Older versions of <code>meld</code> do not support the <code>--output</code> option.  Git will attempt to detect whether <code>meld</code> supports <code>--output</code> @@ -621,7 +621,7 @@  to <code>true</code> tells Git to unconditionally use the <code>--output</code> option,  and <code>false</code> avoids using <code>--output</code>.</p>  </dd> -<dt class="hdlist1">mergetool.meld.useAutoMerge</dt> +<dt class="hdlist1"><code>mergetool.meld.useAutoMerge</code></dt>  <dd>  <p>When the <code>--auto-merge</code> is given, meld will merge all non-conflicting  parts automatically, highlight the conflicting parts, and wait for @@ -632,37 +632,37 @@  value of <code>false</code> avoids using <code>--auto-merge</code> altogether, and is the  default value.</p>  </dd> -<dt class="hdlist1">mergetool.&lt;vimdiff variant&gt;.layout</dt> +<dt class="hdlist1"><code>mergetool.</code><em>&lt;variant&gt;</em><code>.layout</code></dt>  <dd>  <p>Configure the split window layout for vimdiff&#8217;s <em>&lt;variant&gt;</em>, which is any of <code>vimdiff</code>,  <code>nvimdiff</code>, <code>gvimdiff</code>.  Upon launching <code>git</code> <code>mergetool</code> with <code>--tool=</code><em>&lt;variant&gt;</em> (or without <code>--tool</code>  if <code>merge.tool</code> is configured as <em>&lt;variant&gt;</em>), Git will consult  <code>mergetool.</code><em>&lt;variant&gt;</em><code>.layout</code> to determine the tool&#8217;s layout. If the -variant-specific configuration is not available, <code>vimdiff</code>'s is used as +variant-specific configuration is not available, <code>vimdiff</code> ' s is used as  fallback. If that too is not available, a default layout with 4 windows -will be used. To configure the layout, see the <code>BACKEND</code> <code>SPECIFIC</code> <code>HINTS</code> +will be used. To configure the layout, see the <em>BACKEND SPECIFIC HINTS</em>  section.</p>  </dd> -<dt class="hdlist1">mergetool.hideResolved</dt> +<dt class="hdlist1"><code>mergetool.hideResolved</code></dt>  <dd>  <p>During a merge, Git will automatically resolve as many conflicts as -possible and write the <em>MERGED</em> file containing conflict markers around -any conflicts that it cannot resolve; <em>LOCAL</em> and <em>REMOTE</em> normally -represent the versions of the file from before Git&#8217;s conflict -resolution. This flag causes <em>LOCAL</em> and <em>REMOTE</em> to be overwritten so +possible and write the <code>$MERGED</code> file containing conflict markers around +any conflicts that it cannot resolve; <code>$LOCAL</code> and <code>$REMOTE</code> normally +are the versions of the file from before Git`s conflict +resolution. This flag causes <code>$LOCAL</code> and <code>$REMOTE</code> to be overwritten so  that only the unresolved conflicts are presented to the merge tool. Can  be configured per-tool via the <code>mergetool.</code><em>&lt;tool&gt;</em><code>.hideResolved</code>  configuration variable. Defaults to <code>false</code>.</p>  </dd> -<dt class="hdlist1">mergetool.keepBackup</dt> +<dt class="hdlist1"><code>mergetool.keepBackup</code></dt>  <dd>  <p>After performing a merge, the original file with conflict markers  can be saved as a file with a .<code>orig</code> extension. If this variable  is set to <code>false</code> then this file is not preserved. Defaults to  <code>true</code> (i.e. keep the backup files).</p>  </dd> -<dt class="hdlist1">mergetool.keepTemporaries</dt> +<dt class="hdlist1"><code>mergetool.keepTemporaries</code></dt>  <dd>  <p>When invoking a custom merge tool, Git uses a set of temporary  files to pass to the tool. If the tool returns an error and this @@ -670,18 +670,18 @@  preserved; otherwise, they will be removed after the tool has  exited. Defaults to <code>false</code>.</p>  </dd> -<dt class="hdlist1">mergetool.writeToTemp</dt> +<dt class="hdlist1"><code>mergetool.writeToTemp</code></dt>  <dd> -<p>Git writes temporary <em>BASE</em>, <em>LOCAL</em>, and <em>REMOTE</em> versions of +<p>Git writes temporary <code>BASE</code>, <code>LOCAL</code>, and <code>REMOTE</code> versions of  conflicting files in the worktree by default. Git will attempt  to use a temporary directory for these files when set <code>true</code>.  Defaults to <code>false</code>.</p>  </dd> -<dt class="hdlist1">mergetool.prompt</dt> +<dt class="hdlist1"><code>mergetool.prompt</code></dt>  <dd>  <p>Prompt before each invocation of the merge resolution program.</p>  </dd> -<dt class="hdlist1">mergetool.guiDefault</dt> +<dt class="hdlist1"><code>mergetool.guiDefault</code></dt>  <dd>  <p>Set <code>true</code> to use the <code>merge.guitool</code> by default (equivalent to  specifying the <code>--gui</code> argument), or <code>auto</code> to select <code>merge.guitool</code> @@ -982,26 +982,26 @@  <p>In addition, for backwards compatibility with previous Git versions, you can  also append <code>1</code>, <code>2</code> or <code>3</code> to either <code>vimdiff</code> or any of the variants (ex:  <code>vimdiff3</code>, <code>nvimdiff1</code>, etc&#8230;&#8203;) to use a predefined layout. -In other words, using <code>--tool=</code>[<code>g,n,</code>]<code>vimdiffx</code> is the same as using -<code>--tool=</code>[<code>g,n,</code>]<code>vimdiff</code> and setting configuration variable -<code>mergetool.</code>[<code>g,n,</code>]<code>vimdiff.layout</code> to&#8230;&#8203;</p> +In other words, using <code>--tool=</code>[<code>g</code>|<code>n</code>]<code>vimdiff</code><em>&lt;x&gt;</em> is the same as using +<code>--tool=</code>[<code>g</code>|<code>n</code>]<code>vimdiff</code> and setting configuration variable +<code>mergetool.</code>[<code>g</code>|<code>n</code>]<code>vimdiff.layout</code> to&#8230;&#8203;</p>  </div>  <div class="ulist">  <ul>  <li> -<p><code>x=1</code>: "@LOCAL, <code>REMOTE</code>"</p> +<p><em>&lt;x&gt;</em><code>=1</code>: "@LOCAL, <code>REMOTE</code>"</p>  </li>  <li> -<p><code>x=2</code>: "LOCAL, <code>MERGED,</code> <code>REMOTE</code>"</p> +<p><em>&lt;x&gt;</em><code>=2</code>: "LOCAL, <code>MERGED,</code> <code>REMOTE</code>"</p>  </li>  <li> -<p><code>x=3</code>: "MERGED"</p> +<p><em>&lt;x&gt;</em><code>=3</code>: "MERGED"</p>  </li>  </ul>  </div>  <div class="paragraph"> -<p>Example: using <code>--tool=gvimdiff2</code> will open <code>gvim</code> with three columns (LOCAL, -MERGED and REMOTE).</p> +<p>Example: using <code>--tool=gvimdiff2</code> will open <code>gvim</code> with three columns (<code>LOCAL</code>, +<code>MERGED</code> and <code>REMOTE</code>).</p>  </div>  </div>  </div> @@ -1018,7 +1018,7 @@  </div>  <div id="footer">  <div id="footer-text"> -Last updated 2025-02-14 21:38:14 -0800 +Last updated 2025-06-02 12:42:06 -0700  </div>  </div>  </body> 
diff --git a/git-multi-pack-index.adoc b/git-multi-pack-index.adoc index 631d5c7..b6cd0d7 100644 --- a/git-multi-pack-index.adoc +++ b/git-multi-pack-index.adoc 
@@ -38,10 +38,13 @@  +  -- 	--preferred-pack=<pack>:: -	Optionally specify the tie-breaking pack used when -	multiple packs contain the same object. `<pack>` must -	contain at least one object. If not given, ties are -	broken in favor of the pack with the lowest mtime. +	When specified, break ties in favor of this pack when +	there are additional copies of its objects in other +	packs. Ties for objects not found in the preferred +	pack are always resolved in favor of the copy in the +	pack with the highest mtime. If unspecified, the pack +	with the lowest mtime is used by default. The +	preferred pack must have at least one object.   	--[no-]bitmap:: 	Control whether or not a multi-pack bitmap is written. 
diff --git a/git-multi-pack-index.html b/git-multi-pack-index.html index 8130bb3..775e081 100644 --- a/git-multi-pack-index.html +++ b/git-multi-pack-index.html 
@@ -501,10 +501,13 @@  <dl>  <dt class="hdlist1">--preferred-pack=&lt;pack&gt;</dt>  <dd> -<p>Optionally specify the tie-breaking pack used when -multiple packs contain the same object. <em>&lt;pack&gt;</em> must -contain at least one object. If not given, ties are -broken in favor of the pack with the lowest mtime.</p> +<p>When specified, break ties in favor of this pack when +there are additional copies of its objects in other +packs. Ties for objects not found in the preferred +pack are always resolved in favor of the copy in the +pack with the highest mtime. If unspecified, the pack +with the lowest mtime is used by default. The +preferred pack must have at least one object.</p>  </dd>  <dt class="hdlist1">--[no-]bitmap</dt>  <dd> @@ -670,7 +673,7 @@  </div>  <div id="footer">  <div id="footer-text"> -Last updated 2025-02-14 21:38:14 -0800 +Last updated 2025-06-02 12:42:06 -0700  </div>  </div>  </body> 
diff --git a/git-notes.adoc b/git-notes.adoc index bcfe3da..46a232c 100644 --- a/git-notes.adoc +++ b/git-notes.adoc 
@@ -87,6 +87,9 @@  on standard input, and copy the notes from each _<from-object>_ to its  corresponding _<to-object>_. (The optional _<rest>_ is ignored so that  the command can read the input given to the `post-rewrite` hook.) ++ +`--stdin` cannot be combined with object names given on the command +line.    `append`:: 	Append new message(s) given by `-m` or `-F` options to an @@ -124,6 +127,10 @@ 	giving zero or one object from the command line, this is 	equivalent to specifying an empty note message to 	the `edit` subcommand. ++ +In `--stdin` mode, also remove the object names given on standard +input. In other words, `--stdin` can be combined with object names from +the command line.    `prune`:: 	Remove all notes for non-existing/unreachable objects. @@ -144,26 +151,18 @@ 	Use the given note message (instead of prompting). 	If multiple `-m` options are given, their values 	are concatenated as separate paragraphs. -	Lines starting with `#` and empty lines other than a -	single line between paragraphs will be stripped out. -	If you wish to keep them verbatim, use `--no-stripspace`.    `-F <file>`::  `--file=<file>`:: 	Take the note message from the given file. Use `-` to 	read the note message from the standard input. -	Lines starting with `#` and empty lines other than a -	single line between paragraphs will be stripped out. -	If you wish to keep them verbatim, use `--no-stripspace`.    `-C <object>`::  `--reuse-message=<object>`:: 	Take the given blob object (for example, another note) as the 	note message. (Use `git notes copy <object>` instead to -	copy notes between objects.). By default, message will be -	copied verbatim, but if you wish to strip out the lines -	starting with `#` and empty lines other than a single line -	between paragraphs, use with `--stripspace` option. +	copy notes between objects.) Implies `--no-stripspace` since +	the default behavior is to copy the message verbatim.    `-c <object>`::  `--reedit-message=<object>`:: @@ -174,21 +173,34 @@ 	Allow an empty note object to be stored. The default behavior is 	to automatically remove empty notes.   -`--[no-]separator`::  `--separator=<paragraph-break>`:: +`--separator`:: +`--no-separator`:: 	Specify a string used as a custom inter-paragraph separator 	(a newline is added at the end as needed). If `--no-separator`, no 	separators will be added between paragraphs. Defaults to a blank 	line.   -`--[no-]stripspace`:: -	Strip leading and trailing whitespace from the note message. -	Also strip out empty lines other than a single line between -	paragraphs. Lines starting with `#` will be stripped out -	in non-editor cases like `-m`, `-F` and `-C`, but not in -	editor case like `git notes edit`, `-c`, etc. +`--stripspace`:: +`--no-stripspace`:: +	Clean up whitespace. Specifically (see +	linkgit:git-stripspace[1]): ++ +-- +- remove trailing whitespace from all lines +- collapse multiple consecutive empty lines into one empty line +- remove empty lines from the beginning and end of the input +- add a missing `\n` to the last line if necessary. +-- ++ +`--stripspace` is the default except for +`-C`/`--reuse-message`. However, keep in mind that this depends on the +order of similar options. For example, for `-C <object> -m<message>`, +`--stripspace` will be used because the default for `-m` overrides the +previous `-C`. This is a known limitation that may be fixed in the +future.   -`--ref <ref>`:: +`--ref=<ref>`:: 	Manipulate the notes tree in _<ref>_. This overrides 	`GIT_NOTES_REF` and the `core.notesRef` configuration. The ref 	specifies the full refname when it begins with `refs/notes/`; when it @@ -200,9 +212,7 @@ 	object that does not have notes attached to it.    `--stdin`:: -	Also read the object names to remove notes from the standard -	input (there is no reason you cannot combine this with object -	names from the command line). +	Only valid for `remove` and `copy`. See the respective subcommands.    `-n`::  `--dry-run`:: 
diff --git a/git-notes.html b/git-notes.html index ff6ee15..c683439 100644 --- a/git-notes.html +++ b/git-notes.html 
@@ -548,6 +548,10 @@  corresponding <em>&lt;to-object&gt;</em>. (The optional <em>&lt;rest&gt;</em> is ignored so that  the command can read the input given to the <code>post-rewrite</code> hook.)</p>  </div> +<div class="paragraph"> +<p><code>--stdin</code> cannot be combined with object names given on the command +line.</p> +</div>  </dd>  <dt class="hdlist1"><code>append</code></dt>  <dd> @@ -591,6 +595,11 @@  giving zero or one object from the command line, this is  equivalent to specifying an empty note message to  the <code>edit</code> subcommand.</p> +<div class="paragraph"> +<p>In <code>--stdin</code> mode, also remove the object names given on standard +input. In other words, <code>--stdin</code> can be combined with object names from +the command line.</p> +</div>  </dd>  <dt class="hdlist1"><code>prune</code></dt>  <dd> @@ -621,29 +630,21 @@  <dd>  <p>Use the given note message (instead of prompting).  If multiple <code>-m</code> options are given, their values -are concatenated as separate paragraphs. -Lines starting with # and empty lines other than a -single line between paragraphs will be stripped out. -If you wish to keep them verbatim, use <code>--no-stripspace</code>.</p> +are concatenated as separate paragraphs.</p>  </dd>  <dt class="hdlist1"><code>-F</code> <em>&lt;file&gt;</em></dt>  <dt class="hdlist1"><code>--file=</code><em>&lt;file&gt;</em></dt>  <dd>  <p>Take the note message from the given file. Use <code>-</code> to -read the note message from the standard input. -Lines starting with # and empty lines other than a -single line between paragraphs will be stripped out. -If you wish to keep them verbatim, use <code>--no-stripspace</code>.</p> +read the note message from the standard input.</p>  </dd>  <dt class="hdlist1"><code>-C</code> <em>&lt;object&gt;</em></dt>  <dt class="hdlist1"><code>--reuse-message=</code><em>&lt;object&gt;</em></dt>  <dd>  <p>Take the given blob object (for example, another note) as the  note message. (Use <code>git</code> <code>notes</code> <code>copy</code> <em>&lt;object&gt;</em> instead to -copy notes between objects.). By default, message will be -copied verbatim, but if you wish to strip out the lines -starting with # and empty lines other than a single line -between paragraphs, use with <code>--stripspace</code> option.</p> +copy notes between objects.) Implies <code>--no-stripspace</code> since +the default behavior is to copy the message verbatim.</p>  </dd>  <dt class="hdlist1"><code>-c</code> <em>&lt;object&gt;</em></dt>  <dt class="hdlist1"><code>--reedit-message=</code><em>&lt;object&gt;</em></dt> @@ -656,23 +657,50 @@  <p>Allow an empty note object to be stored. The default behavior is  to automatically remove empty notes.</p>  </dd> -<dt class="hdlist1"><code>--</code>[<code>no-</code>]<code>separator</code></dt>  <dt class="hdlist1"><code>--separator=</code><em>&lt;paragraph-break&gt;</em></dt> +<dt class="hdlist1"><code>--separator</code></dt> +<dt class="hdlist1"><code>--no-separator</code></dt>  <dd>  <p>Specify a string used as a custom inter-paragraph separator  (a newline is added at the end as needed). If <code>--no-separator</code>, no  separators will be added between paragraphs. Defaults to a blank  line.</p>  </dd> -<dt class="hdlist1"><code>--</code>[<code>no-</code>]<code>stripspace</code></dt> +<dt class="hdlist1"><code>--stripspace</code></dt> +<dt class="hdlist1"><code>--no-stripspace</code></dt>  <dd> -<p>Strip leading and trailing whitespace from the note message. -Also strip out empty lines other than a single line between -paragraphs. Lines starting with # will be stripped out -in non-editor cases like <code>-m</code>, <code>-F</code> and <code>-C</code>, but not in -editor case like <code>git</code> <code>notes</code> <code>edit</code>, <code>-c</code>, etc.</p> +<p>Clean up whitespace. Specifically (see +<a href="git-stripspace.html">git-stripspace(1)</a>):</p> +<div class="openblock"> +<div class="content"> +<div class="ulist"> +<ul> +<li> +<p>remove trailing whitespace from all lines</p> +</li> +<li> +<p>collapse multiple consecutive empty lines into one empty line</p> +</li> +<li> +<p>remove empty lines from the beginning and end of the input</p> +</li> +<li> +<p>add a missing <code>\n</code> to the last line if necessary.</p> +</li> +</ul> +</div> +</div> +</div> +<div class="paragraph"> +<p><code>--stripspace</code> is the default except for +<code>-C</code>/<code>--reuse-message</code>. However, keep in mind that this depends on the +order of similar options. For example, for <code>-C</code> <em>&lt;object&gt;</em> <code>-m</code><em>&lt;message&gt;</em>, +<code>--stripspace</code> will be used because the default for <code>-m</code> overrides the +previous <code>-C</code>. This is a known limitation that may be fixed in the +future.</p> +</div>  </dd> -<dt class="hdlist1"><code>--ref</code> <em>&lt;ref&gt;</em></dt> +<dt class="hdlist1"><code>--ref=</code><em>&lt;ref&gt;</em></dt>  <dd>  <p>Manipulate the notes tree in <em>&lt;ref&gt;</em>. This overrides  <code>GIT_NOTES_REF</code> and the <code>core.notesRef</code> configuration. The ref @@ -687,9 +715,7 @@  </dd>  <dt class="hdlist1"><code>--stdin</code></dt>  <dd> -<p>Also read the object names to remove notes from the standard -input (there is no reason you cannot combine this with object -names from the command line).</p> +<p>Only valid for <code>remove</code> and <code>copy</code>. See the respective subcommands.</p>  </dd>  <dt class="hdlist1"><code>-n</code></dt>  <dt class="hdlist1"><code>--dry-run</code></dt> @@ -1015,7 +1041,7 @@  </div>  <div id="footer">  <div id="footer-text"> -Last updated 2025-02-14 21:38:14 -0800 +Last updated 2025-06-02 12:42:06 -0700  </div>  </div>  </body> 
diff --git a/git-pull.html b/git-pull.html index fb3f7ff..598ae8d 100644 --- a/git-pull.html +++ b/git-pull.html 
@@ -567,27 +567,27 @@  <h3 id="_options_related_to_merging">Options related to merging</h3>  <div class="dlist">  <dl> -<dt class="hdlist1">--commit</dt> -<dt class="hdlist1">--no-commit</dt> +<dt class="hdlist1"><code>--commit</code></dt> +<dt class="hdlist1"><code>--no-commit</code></dt>  <dd>  <p>Perform the merge and commit the result. This option can -be used to override --no-commit. +be used to override <code>--no-commit</code>.  Only useful when merging.</p>  <div class="paragraph"> -<p>With --no-commit perform the merge and stop just before creating +<p>With <code>--no-commit</code> perform the merge and stop just before creating  a merge commit, to give the user a chance to inspect and further  tweak the merge result before committing.</p>  </div>  <div class="paragraph">  <p>Note that fast-forward updates do not create a merge commit and -therefore there is no way to stop those merges with --no-commit. +therefore there is no way to stop those merges with <code>--no-commit</code>.  Thus, if you want to ensure your branch is not changed or updated -by the merge command, use --no-ff with --no-commit.</p> +by the merge command, use <code>--no-ff</code> with <code>--no-commit</code>.</p>  </div>  </dd> -<dt class="hdlist1">--edit</dt> -<dt class="hdlist1">-e</dt> -<dt class="hdlist1">--no-edit</dt> +<dt class="hdlist1"><code>--edit</code></dt> +<dt class="hdlist1"><code>-e</code></dt> +<dt class="hdlist1"><code>--no-edit</code></dt>  <dd>  <p>Invoke an editor before committing successful mechanical merge to  further edit the auto-generated merge message, so that the user @@ -602,7 +602,7 @@  set to <code>no</code> at the beginning of them.</p>  </div>  </dd> -<dt class="hdlist1">--cleanup=&lt;mode&gt;</dt> +<dt class="hdlist1"><code>--cleanup=</code><em>&lt;mode&gt;</em></dt>  <dd>  <p>This option determines how the merge message will be cleaned up before  committing. See <a href="git-commit.html">git-commit(1)</a> for more details. In addition, if @@ -610,14 +610,14 @@  to <code>MERGE_MSG</code> before being passed on to the commit machinery in the  case of a merge conflict.</p>  </dd> -<dt class="hdlist1">--ff-only</dt> +<dt class="hdlist1"><code>--ff-only</code></dt>  <dd>  <p>Only update to the new history if there is no divergent local  history. This is the default when no method for reconciling  divergent histories is provided (via the --rebase=* flags).</p>  </dd> -<dt class="hdlist1">--ff</dt> -<dt class="hdlist1">--no-ff</dt> +<dt class="hdlist1"><code>--ff</code></dt> +<dt class="hdlist1"><code>--no-ff</code></dt>  <dd>  <p>When merging rather than rebasing, specifies how a merge is  handled when the merged-in history is already a descendant of @@ -636,25 +636,25 @@  could instead be resolved as a fast-forward.</p>  </div>  </dd> -<dt class="hdlist1">-S[&lt;keyid&gt;]</dt> -<dt class="hdlist1">--gpg-sign[=&lt;keyid&gt;]</dt> -<dt class="hdlist1">--no-gpg-sign</dt> +<dt class="hdlist1"><code>-S</code>[<em>&lt;key-id&gt;</em>]</dt> +<dt class="hdlist1"><code>--gpg-sign</code>[<code>=</code><em>&lt;key-id&gt;</em>]</dt> +<dt class="hdlist1"><code>--no-gpg-sign</code></dt>  <dd> -<p>GPG-sign the resulting merge commit. The <code>keyid</code> argument is +<p>GPG-sign the resulting merge commit. The <em>&lt;key-id&gt;</em> argument is  optional and defaults to the committer identity; if specified,  it must be stuck to the option without a space. <code>--no-gpg-sign</code>  is useful to countermand both <code>commit.gpgSign</code> configuration variable,  and earlier <code>--gpg-sign</code>.</p>  </dd> -<dt class="hdlist1">--log[=&lt;n&gt;]</dt> -<dt class="hdlist1">--no-log</dt> +<dt class="hdlist1"><code>--log</code>[<code>=</code><em>&lt;n&gt;</em>]</dt> +<dt class="hdlist1"><code>--no-log</code></dt>  <dd>  <p>In addition to branch names, populate the log message with -one-line descriptions from at most &lt;n&gt; actual commits that are being +one-line descriptions from at most <em>&lt;n&gt;</em> actual commits that are being  merged. See also <a href="git-fmt-merge-msg.html">git-fmt-merge-msg(1)</a>.  Only useful when merging.</p>  <div class="paragraph"> -<p>With --no-log do not list one-line descriptions from the +<p>With <code>--no-log</code> do not list one-line descriptions from the  actual commits being merged.</p>  </div>  </dd> @@ -676,19 +676,19 @@  option on the command line.</p>  </div>  </dd> -<dt class="hdlist1">--stat</dt> -<dt class="hdlist1">-n</dt> -<dt class="hdlist1">--no-stat</dt> +<dt class="hdlist1"><code>--stat</code></dt> +<dt class="hdlist1"><code>-n</code></dt> +<dt class="hdlist1"><code>--no-stat</code></dt>  <dd>  <p>Show a diffstat at the end of the merge. The diffstat is also  controlled by the configuration option merge.stat.</p>  <div class="paragraph"> -<p>With -n or --no-stat do not show a diffstat at the end of the +<p>With <code>-n</code> or <code>--no-stat</code> do not show a diffstat at the end of the  merge.</p>  </div>  </dd> -<dt class="hdlist1">--squash</dt> -<dt class="hdlist1">--no-squash</dt> +<dt class="hdlist1"><code>--squash</code></dt> +<dt class="hdlist1"><code>--no-squash</code></dt>  <dd>  <p>Produce the working tree and index state as if a real merge  happened (except for the merge information), but do not actually @@ -698,25 +698,25 @@  the current branch whose effect is the same as merging another  branch (or more in case of an octopus).</p>  <div class="paragraph"> -<p>With --no-squash perform the merge and commit the result. This -option can be used to override --squash.</p> +<p>With <code>--no-squash</code> perform the merge and commit the result. This +option can be used to override <code>--squash</code>.</p>  </div>  <div class="paragraph"> -<p>With --squash, --commit is not allowed, and will fail.</p> +<p>With <code>--squash</code>, <code>--commit</code> is not allowed, and will fail.</p>  </div>  <div class="paragraph">  <p>Only useful when merging.</p>  </div>  </dd> -<dt class="hdlist1">--[no-]verify</dt> +<dt class="hdlist1"><code>--</code>[<code>no-</code>]<code>verify</code></dt>  <dd>  <p>By default, the pre-merge and commit-msg hooks are run.  When <code>--no-verify</code> is given, these are bypassed.  See also <a href="githooks.html">githooks(5)</a>.  Only useful when merging.</p>  </dd> -<dt class="hdlist1">-s &lt;strategy&gt;</dt> -<dt class="hdlist1">--strategy=&lt;strategy&gt;</dt> +<dt class="hdlist1"><code>-s</code> <em>&lt;strategy&gt;</em></dt> +<dt class="hdlist1"><code>--strategy=</code><em>&lt;strategy&gt;</em></dt>  <dd>  <p>Use the given merge strategy; can be supplied more than  once to specify them in the order they should be tried. @@ -724,14 +724,14 @@  is used instead (<code>ort</code> when merging a single head,  <code>octopus</code> otherwise).</p>  </dd> -<dt class="hdlist1">-X &lt;option&gt;</dt> -<dt class="hdlist1">--strategy-option=&lt;option&gt;</dt> +<dt class="hdlist1"><code>-X</code> <em>&lt;option&gt;</em></dt> +<dt class="hdlist1"><code>--strategy-option=</code><em>&lt;option&gt;</em></dt>  <dd>  <p>Pass merge strategy specific option through to the merge  strategy.</p>  </dd> -<dt class="hdlist1">--verify-signatures</dt> -<dt class="hdlist1">--no-verify-signatures</dt> +<dt class="hdlist1"><code>--verify-signatures</code></dt> +<dt class="hdlist1"><code>--no-verify-signatures</code></dt>  <dd>  <p>Verify that the tip commit of the side branch being merged is  signed with a valid key, i.e. a key that has a valid uid: in the @@ -742,14 +742,14 @@  <p>Only useful when merging.</p>  </div>  </dd> -<dt class="hdlist1">--summary</dt> -<dt class="hdlist1">--no-summary</dt> +<dt class="hdlist1"><code>--summary</code></dt> +<dt class="hdlist1"><code>--no-summary</code></dt>  <dd> -<p>Synonyms to --stat and --no-stat; these are deprecated and will be +<p>Synonyms to <code>--stat</code> and <code>--no-stat</code>; these are deprecated and will be  removed in the future.</p>  </dd> -<dt class="hdlist1">--autostash</dt> -<dt class="hdlist1">--no-autostash</dt> +<dt class="hdlist1"><code>--autostash</code></dt> +<dt class="hdlist1"><code>--no-autostash</code></dt>  <dd>  <p>Automatically create a temporary stash entry before the operation  begins, record it in the ref <code>MERGE_AUTOSTASH</code> @@ -758,14 +758,14 @@  with care: the final stash application after a successful  merge might result in non-trivial conflicts.</p>  </dd> -<dt class="hdlist1">--allow-unrelated-histories</dt> +<dt class="hdlist1"><code>--allow-unrelated-histories</code></dt>  <dd>  <p>By default, <code>git</code> <code>merge</code> command refuses to merge histories  that do not share a common ancestor. This option can be  used to override this safety when merging histories of two  projects that started their lives independently. As that is  a very rare occasion, no configuration variable to enable -this by default exists and will not be added.</p> +this by default exists or will be added.</p>  <div class="paragraph">  <p>Only useful when merging.</p>  </div> @@ -1495,7 +1495,7 @@  </div>  <div class="dlist">  <dl> -<dt class="hdlist1">ort</dt> +<dt class="hdlist1"><code>ort</code></dt>  <dd>  <p>This is the default merge strategy when pulling or merging one  branch. This strategy can only resolve two heads using a @@ -1520,31 +1520,31 @@  ones, if one exists.</p>  </div>  <div class="paragraph"> -<p>The <em>ort</em> strategy can take the following options:</p> +<p>The <code>ort</code> strategy can take the following options:</p>  </div>  <div class="dlist">  <dl> -<dt class="hdlist1">ours</dt> +<dt class="hdlist1"><code>ours</code></dt>  <dd>  <p>This option forces conflicting hunks to be auto-resolved cleanly by  favoring <em>our</em> version. Changes from the other tree that do not  conflict with our side are reflected in the merge result.  For a binary file, the entire contents are taken from our side.</p>  <div class="paragraph"> -<p>This should not be confused with the <em>ours</em> merge strategy, which does not +<p>This should not be confused with the <code>ours</code> merge strategy, which does not  even look at what the other tree contains at all. It discards everything  the other tree did, declaring <em>our</em> history contains all that happened in it.</p>  </div>  </dd> -<dt class="hdlist1">theirs</dt> +<dt class="hdlist1"><code>theirs</code></dt>  <dd> -<p>This is the opposite of <em>ours</em>; note that, unlike <em>ours</em>, there is -no <em>theirs</em> merge strategy to confuse this merge option with.</p> +<p>This is the opposite of <code>ours</code>; note that, unlike <code>ours</code>, there is +no <code>theirs</code> merge strategy to confuse this merge option with.</p>  </dd> -<dt class="hdlist1">ignore-space-change</dt> -<dt class="hdlist1">ignore-all-space</dt> -<dt class="hdlist1">ignore-space-at-eol</dt> -<dt class="hdlist1">ignore-cr-at-eol</dt> +<dt class="hdlist1"><code>ignore-space-change</code></dt> +<dt class="hdlist1"><code>ignore-all-space</code></dt> +<dt class="hdlist1"><code>ignore-space-at-eol</code></dt> +<dt class="hdlist1"><code>ignore-cr-at-eol</code></dt>  <dd>  <p>Treats lines with the indicated type of whitespace change as  unchanged for the sake of a three-way merge. Whitespace @@ -1567,7 +1567,7 @@  </ul>  </div>  </dd> -<dt class="hdlist1">renormalize</dt> +<dt class="hdlist1"><code>renormalize</code></dt>  <dd>  <p>This runs a virtual check-out and check-in of all three stages  of any file which needs a three-way merge. This option is @@ -1576,37 +1576,37 @@  branches with differing checkin/checkout attributes" in  <a href="gitattributes.html">gitattributes(5)</a> for details.</p>  </dd> -<dt class="hdlist1">no-renormalize</dt> +<dt class="hdlist1"><code>no-renormalize</code></dt>  <dd>  <p>Disables the <code>renormalize</code> option. This overrides the  <code>merge.renormalize</code> configuration variable.</p>  </dd> -<dt class="hdlist1">find-renames[=&lt;n&gt;]</dt> +<dt class="hdlist1"><code>find-renames</code>[<code>=</code><em>&lt;n&gt;</em>]</dt>  <dd>  <p>Turn on rename detection, optionally setting the similarity  threshold. This is the default. This overrides the -<em>merge.renames</em> configuration variable. +<code>merge.renames</code> configuration variable.  See also <a href="git-diff.html">git-diff(1)</a> <code>--find-renames</code>.</p>  </dd> -<dt class="hdlist1">rename-threshold=&lt;n&gt;</dt> +<dt class="hdlist1"><code>rename-threshold=</code><em>&lt;n&gt;</em></dt>  <dd>  <p>Deprecated synonym for <code>find-renames=</code><em>&lt;n&gt;</em>.</p>  </dd> -<dt class="hdlist1">no-renames</dt> +<dt class="hdlist1"><code>no-renames</code></dt>  <dd>  <p>Turn off rename detection. This overrides the <code>merge.renames</code>  configuration variable.  See also <a href="git-diff.html">git-diff(1)</a> <code>--no-renames</code>.</p>  </dd> -<dt class="hdlist1">histogram</dt> +<dt class="hdlist1"><code>histogram</code></dt>  <dd>  <p>Deprecated synonym for <code>diff-algorithm=histogram</code>.</p>  </dd> -<dt class="hdlist1">patience</dt> +<dt class="hdlist1"><code>patience</code></dt>  <dd>  <p>Deprecated synonym for <code>diff-algorithm=patience</code>.</p>  </dd> -<dt class="hdlist1">diff-algorithm=[histogram|minimal|myers|patience]</dt> +<dt class="hdlist1"><code>diff-algorithm=</code>(<code>histogram</code>|<code>minimal</code>|<code>myers</code>|<code>patience</code>)</dt>  <dd>  <p>Use a different diff algorithm while merging, which can help  avoid mismerges that occur due to unimportant matching lines @@ -1615,7 +1615,7 @@  defaults to <code>diff-algorithm=histogram</code>, while regular diffs  currently default to the <code>diff.algorithm</code> config setting.</p>  </dd> -<dt class="hdlist1">subtree[=&lt;path&gt;]</dt> +<dt class="hdlist1"><code>subtree</code>[<code>=</code><em>&lt;path&gt;</em>]</dt>  <dd>  <p>This option is a more advanced form of <em>subtree</em> strategy, where  the strategy makes a guess on how two trees must be shifted to @@ -1626,7 +1626,7 @@  </dl>  </div>  </dd> -<dt class="hdlist1">recursive</dt> +<dt class="hdlist1"><code>recursive</code></dt>  <dd>  <p>This is now a synonym for <code>ort</code>. It was an alternative  implementation until v2.49.0, but was redirected to mean <code>ort</code> @@ -1634,14 +1634,14 @@  strategy for resolving two heads from Git v0.99.9k until  v2.33.0.</p>  </dd> -<dt class="hdlist1">resolve</dt> +<dt class="hdlist1"><code>resolve</code></dt>  <dd>  <p>This can only resolve two heads (i.e. the current branch  and another branch you pulled from) using a 3-way merge  algorithm. It tries to carefully detect criss-cross  merge ambiguities. It does not handle renames.</p>  </dd> -<dt class="hdlist1">octopus</dt> +<dt class="hdlist1"><code>octopus</code></dt>  <dd>  <p>This resolves cases with more than two heads, but refuses to do  a complex merge that needs manual resolution. It is @@ -1649,16 +1649,16 @@  heads together. This is the default merge strategy when  pulling or merging more than one branch.</p>  </dd> -<dt class="hdlist1">ours</dt> +<dt class="hdlist1"><code>ours</code></dt>  <dd>  <p>This resolves any number of heads, but the resulting tree of the  merge is always that of the current branch head, effectively  ignoring all changes from all other branches. It is meant to  be used to supersede old development history of side -branches. Note that this is different from the -Xours option to -the <em>ort</em> merge strategy.</p> +branches. Note that this is different from the <code>-Xours</code> option to +the <code>ort</code> merge strategy.</p>  </dd> -<dt class="hdlist1">subtree</dt> +<dt class="hdlist1"><code>subtree</code></dt>  <dd>  <p>This is a modified <code>ort</code> strategy. When merging trees A and  B, if B corresponds to a subtree of A, B is first adjusted to @@ -1669,7 +1669,7 @@  </dl>  </div>  <div class="paragraph"> -<p>With the strategies that use 3-way merge (including the default, <em>ort</em>), +<p>With the strategies that use 3-way merge (including the default, <code>ort</code>),  if a change is made on both branches, but later reverted on one of the  branches, that change will be present in the merged result; some people find  this behavior confusing. It occurs because only the heads and the merge base 
diff --git a/git-rebase.html b/git-rebase.html index eb75b1a..1a03368 100644 --- a/git-rebase.html +++ b/git-rebase.html 
@@ -968,8 +968,8 @@  <p>See also INCOMPATIBLE OPTIONS below.</p>  </div>  </dd> -<dt class="hdlist1">--rerere-autoupdate</dt> -<dt class="hdlist1">--no-rerere-autoupdate</dt> +<dt class="hdlist1"><code>--rerere-autoupdate</code></dt> +<dt class="hdlist1"><code>--no-rerere-autoupdate</code></dt>  <dd>  <p>After the rerere mechanism reuses a recorded resolution on  the current conflict to update the files in the working @@ -1552,7 +1552,7 @@  </div>  <div class="dlist">  <dl> -<dt class="hdlist1">ort</dt> +<dt class="hdlist1"><code>ort</code></dt>  <dd>  <p>This is the default merge strategy when pulling or merging one  branch. This strategy can only resolve two heads using a @@ -1577,31 +1577,31 @@  ones, if one exists.</p>  </div>  <div class="paragraph"> -<p>The <em>ort</em> strategy can take the following options:</p> +<p>The <code>ort</code> strategy can take the following options:</p>  </div>  <div class="dlist">  <dl> -<dt class="hdlist1">ours</dt> +<dt class="hdlist1"><code>ours</code></dt>  <dd>  <p>This option forces conflicting hunks to be auto-resolved cleanly by  favoring <em>our</em> version. Changes from the other tree that do not  conflict with our side are reflected in the merge result.  For a binary file, the entire contents are taken from our side.</p>  <div class="paragraph"> -<p>This should not be confused with the <em>ours</em> merge strategy, which does not +<p>This should not be confused with the <code>ours</code> merge strategy, which does not  even look at what the other tree contains at all. It discards everything  the other tree did, declaring <em>our</em> history contains all that happened in it.</p>  </div>  </dd> -<dt class="hdlist1">theirs</dt> +<dt class="hdlist1"><code>theirs</code></dt>  <dd> -<p>This is the opposite of <em>ours</em>; note that, unlike <em>ours</em>, there is -no <em>theirs</em> merge strategy to confuse this merge option with.</p> +<p>This is the opposite of <code>ours</code>; note that, unlike <code>ours</code>, there is +no <code>theirs</code> merge strategy to confuse this merge option with.</p>  </dd> -<dt class="hdlist1">ignore-space-change</dt> -<dt class="hdlist1">ignore-all-space</dt> -<dt class="hdlist1">ignore-space-at-eol</dt> -<dt class="hdlist1">ignore-cr-at-eol</dt> +<dt class="hdlist1"><code>ignore-space-change</code></dt> +<dt class="hdlist1"><code>ignore-all-space</code></dt> +<dt class="hdlist1"><code>ignore-space-at-eol</code></dt> +<dt class="hdlist1"><code>ignore-cr-at-eol</code></dt>  <dd>  <p>Treats lines with the indicated type of whitespace change as  unchanged for the sake of a three-way merge. Whitespace @@ -1624,7 +1624,7 @@  </ul>  </div>  </dd> -<dt class="hdlist1">renormalize</dt> +<dt class="hdlist1"><code>renormalize</code></dt>  <dd>  <p>This runs a virtual check-out and check-in of all three stages  of any file which needs a three-way merge. This option is @@ -1633,37 +1633,37 @@  branches with differing checkin/checkout attributes" in  <a href="gitattributes.html">gitattributes(5)</a> for details.</p>  </dd> -<dt class="hdlist1">no-renormalize</dt> +<dt class="hdlist1"><code>no-renormalize</code></dt>  <dd>  <p>Disables the <code>renormalize</code> option. This overrides the  <code>merge.renormalize</code> configuration variable.</p>  </dd> -<dt class="hdlist1">find-renames[=&lt;n&gt;]</dt> +<dt class="hdlist1"><code>find-renames</code>[<code>=</code><em>&lt;n&gt;</em>]</dt>  <dd>  <p>Turn on rename detection, optionally setting the similarity  threshold. This is the default. This overrides the -<em>merge.renames</em> configuration variable. +<code>merge.renames</code> configuration variable.  See also <a href="git-diff.html">git-diff(1)</a> <code>--find-renames</code>.</p>  </dd> -<dt class="hdlist1">rename-threshold=&lt;n&gt;</dt> +<dt class="hdlist1"><code>rename-threshold=</code><em>&lt;n&gt;</em></dt>  <dd>  <p>Deprecated synonym for <code>find-renames=</code><em>&lt;n&gt;</em>.</p>  </dd> -<dt class="hdlist1">no-renames</dt> +<dt class="hdlist1"><code>no-renames</code></dt>  <dd>  <p>Turn off rename detection. This overrides the <code>merge.renames</code>  configuration variable.  See also <a href="git-diff.html">git-diff(1)</a> <code>--no-renames</code>.</p>  </dd> -<dt class="hdlist1">histogram</dt> +<dt class="hdlist1"><code>histogram</code></dt>  <dd>  <p>Deprecated synonym for <code>diff-algorithm=histogram</code>.</p>  </dd> -<dt class="hdlist1">patience</dt> +<dt class="hdlist1"><code>patience</code></dt>  <dd>  <p>Deprecated synonym for <code>diff-algorithm=patience</code>.</p>  </dd> -<dt class="hdlist1">diff-algorithm=[histogram|minimal|myers|patience]</dt> +<dt class="hdlist1"><code>diff-algorithm=</code>(<code>histogram</code>|<code>minimal</code>|<code>myers</code>|<code>patience</code>)</dt>  <dd>  <p>Use a different diff algorithm while merging, which can help  avoid mismerges that occur due to unimportant matching lines @@ -1672,7 +1672,7 @@  defaults to <code>diff-algorithm=histogram</code>, while regular diffs  currently default to the <code>diff.algorithm</code> config setting.</p>  </dd> -<dt class="hdlist1">subtree[=&lt;path&gt;]</dt> +<dt class="hdlist1"><code>subtree</code>[<code>=</code><em>&lt;path&gt;</em>]</dt>  <dd>  <p>This option is a more advanced form of <em>subtree</em> strategy, where  the strategy makes a guess on how two trees must be shifted to @@ -1683,7 +1683,7 @@  </dl>  </div>  </dd> -<dt class="hdlist1">recursive</dt> +<dt class="hdlist1"><code>recursive</code></dt>  <dd>  <p>This is now a synonym for <code>ort</code>. It was an alternative  implementation until v2.49.0, but was redirected to mean <code>ort</code> @@ -1691,14 +1691,14 @@  strategy for resolving two heads from Git v0.99.9k until  v2.33.0.</p>  </dd> -<dt class="hdlist1">resolve</dt> +<dt class="hdlist1"><code>resolve</code></dt>  <dd>  <p>This can only resolve two heads (i.e. the current branch  and another branch you pulled from) using a 3-way merge  algorithm. It tries to carefully detect criss-cross  merge ambiguities. It does not handle renames.</p>  </dd> -<dt class="hdlist1">octopus</dt> +<dt class="hdlist1"><code>octopus</code></dt>  <dd>  <p>This resolves cases with more than two heads, but refuses to do  a complex merge that needs manual resolution. It is @@ -1706,16 +1706,16 @@  heads together. This is the default merge strategy when  pulling or merging more than one branch.</p>  </dd> -<dt class="hdlist1">ours</dt> +<dt class="hdlist1"><code>ours</code></dt>  <dd>  <p>This resolves any number of heads, but the resulting tree of the  merge is always that of the current branch head, effectively  ignoring all changes from all other branches. It is meant to  be used to supersede old development history of side -branches. Note that this is different from the -Xours option to -the <em>ort</em> merge strategy.</p> +branches. Note that this is different from the <code>-Xours</code> option to +the <code>ort</code> merge strategy.</p>  </dd> -<dt class="hdlist1">subtree</dt> +<dt class="hdlist1"><code>subtree</code></dt>  <dd>  <p>This is a modified <code>ort</code> strategy. When merging trees A and  B, if B corresponds to a subtree of A, B is first adjusted to @@ -1726,7 +1726,7 @@  </dl>  </div>  <div class="paragraph"> -<p>With the strategies that use 3-way merge (including the default, <em>ort</em>), +<p>With the strategies that use 3-way merge (including the default, <code>ort</code>),  if a change is made on both branches, but later reverted on one of the  branches, that change will be present in the merged result; some people find  this behavior confusing. It occurs because only the heads and the merge base 
diff --git a/git-revert.html b/git-revert.html index 93506ce..e07c838 100644 --- a/git-revert.html +++ b/git-revert.html 
@@ -579,8 +579,8 @@  <p>Pass the merge strategy-specific option through to the  merge strategy. See <a href="git-merge.html">git-merge(1)</a> for details.</p>  </dd> -<dt class="hdlist1">--rerere-autoupdate</dt> -<dt class="hdlist1">--no-rerere-autoupdate</dt> +<dt class="hdlist1"><code>--rerere-autoupdate</code></dt> +<dt class="hdlist1"><code>--no-rerere-autoupdate</code></dt>  <dd>  <p>After the rerere mechanism reuses a recorded resolution on  the current conflict to update the files in the working 
diff --git a/git-stripspace.adoc b/git-stripspace.adoc index a293327..37287f2 100644 --- a/git-stripspace.adoc +++ b/git-stripspace.adoc 
@@ -37,7 +37,8 @@  -------  -s::  --strip-comments:: -	Skip and remove all lines starting with a comment character (default '#'). +	Skip and remove all lines starting with a comment character +	(`core.commentChar`, default `#`).    -c::  --comment-lines:: 
diff --git a/git-stripspace.html b/git-stripspace.html index 19eb51b..ae43de6 100644 --- a/git-stripspace.html +++ b/git-stripspace.html 
@@ -503,7 +503,8 @@  <dt class="hdlist1">-s</dt>  <dt class="hdlist1">--strip-comments</dt>  <dd> -<p>Skip and remove all lines starting with a comment character (default <em>#</em>).</p> +<p>Skip and remove all lines starting with a comment character +(<code>core.commentChar</code>, default #).</p>  </dd>  <dt class="hdlist1">-c</dt>  <dt class="hdlist1">--comment-lines</dt> @@ -579,7 +580,7 @@  </div>  <div id="footer">  <div id="footer-text"> -Last updated 2025-02-14 21:38:14 -0800 +Last updated 2025-06-02 12:42:06 -0700  </div>  </div>  </body> 
diff --git a/git-switch.adoc b/git-switch.adoc index f55315c..9f62abf 100644 --- a/git-switch.adoc +++ b/git-switch.adoc 
@@ -7,11 +7,11 @@    SYNOPSIS  -------- -[verse] -'git switch' [<options>] [--no-guess] <branch> -'git switch' [<options>] --detach [<start-point>] -'git switch' [<options>] (-c|-C) <new-branch> [<start-point>] -'git switch' [<options>] --orphan <new-branch> +[synopsis] +git switch [<options>] [--no-guess] <branch> +git switch [<options>] --detach [<start-point>] +git switch [<options>] (-c|-C) <new-branch> [<start-point>] +git switch [<options>] --orphan <new-branch>    DESCRIPTION  ----------- @@ -33,33 +33,33 @@    OPTIONS  ------- -<branch>:: +_<branch>_:: 	Branch to switch to.   -<new-branch>:: +_<new-branch>_:: 	Name for the new branch.   -<start-point>:: +_<start-point>_:: 	The starting point for the new branch. Specifying a -	`<start-point>` allows you to create a branch based on some -	other point in history than where HEAD currently points. (Or, +	_<start-point>_ allows you to create a branch based on some +	other point in history than where `HEAD` currently points. (Or, 	in the case of `--detach`, allows you to inspect and detach 	from some other point.)  + -You can use the `@{-N}` syntax to refer to the N-th last -branch/commit switched to using "git switch" or "git checkout" +You can use the `@{-<N>}` syntax to refer to the _<N>_-th last +branch/commit switched to using `git switch` or `git checkout`  operation. You may also specify `-` which is synonymous to `@{-1}`.  This is often used to switch quickly between two branches, or to undo  a branch switch by mistake.  + -As a special case, you may use `A...B` as a shortcut for the merge -base of `A` and `B` if there is exactly one merge base. You can leave -out at most one of `A` and `B`, in which case it defaults to `HEAD`. +As a special case, you may use `<rev-a>...<rev-b>` as a shortcut for the merge +base of _<rev-a>_ and _<rev-b>_ if there is exactly one merge base. You can leave +out at most one of _<rev-a>_ and _<rev-b>_, in which case it defaults to `HEAD`.   --c <new-branch>:: ---create <new-branch>:: -	Create a new branch named `<new-branch>` starting at -	`<start-point>` before switching to the branch. This is the +`-c <new-branch>`:: +`--create <new-branch>`:: +	Create a new branch named _<new-branch>_ starting at +	_<start-point>_ before switching to the branch. This is the 	transactional equivalent of  +  ------------ @@ -67,32 +67,32 @@  $ git switch <new-branch>  ------------  + -that is to say, the branch is not reset/created unless "git switch" is +that is to say, the branch is not reset/created unless `git switch` is  successful (e.g., when the branch is in use in another worktree, not  just the current branch stays the same, but the branch is not reset to  the start-point, either).   --C <new-branch>:: ---force-create <new-branch>:: -	Similar to `--create` except that if `<new-branch>` already -	exists, it will be reset to `<start-point>`. This is a +`-C <new-branch>`:: +`--force-create <new-branch>`:: +	Similar to `--create` except that if _<new-branch>_ already +	exists, it will be reset to _<start-point>_. This is a 	convenient shortcut for:  +  ------------ -$ git branch -f <new-branch> -$ git switch <new-branch> +$ git branch -f _<new-branch>_ +$ git switch _<new-branch>_  ------------   --d:: ---detach:: +`-d`:: +`--detach`:: 	Switch to a commit for inspection and discardable 	experiments. See the "DETACHED HEAD" section in 	linkgit:git-checkout[1] for details.   ---guess:: ---no-guess:: -	If `<branch>` is not found but there does exist a tracking -	branch in exactly one remote (call it `<remote>`) with a +`--guess`:: +`--no-guess`:: +	If _<branch>_ is not found but there does exist a tracking +	branch in exactly one remote (call it _<remote>_) with a 	matching name, treat as equivalent to  +  ------------ @@ -101,9 +101,9 @@  +  If the branch exists in multiple remotes and one of them is named by  the `checkout.defaultRemote` configuration variable, we'll use that -one for the purposes of disambiguation, even if the `<branch>` isn't +one for the purposes of disambiguation, even if the _<branch>_ isn't  unique across all remotes. Set it to e.g. `checkout.defaultRemote=origin` -to always checkout remote branches from there if `<branch>` is +to always checkout remote branches from there if _<branch>_ is  ambiguous but exists on the 'origin' remote. See also  `checkout.defaultRemote` in linkgit:git-config[1].  + @@ -112,19 +112,19 @@  The default behavior can be set via the `checkout.guess` configuration  variable.   --f:: ---force:: +`-f`:: +`--force`:: 	An alias for `--discard-changes`.   ---discard-changes:: +`--discard-changes`:: 	Proceed even if the index or the working tree differs from 	`HEAD`. Both the index and working tree are restored to match 	the switching target. If `--recurse-submodules` is specified, 	submodule content is also restored to match the switching 	target. This is used to throw away local changes.   --m:: ---merge:: +`-m`:: +`--merge`:: 	If you have local modifications to one or more files that are 	different between the current branch and the branch to which 	you are switching, the command refuses to switch branches in @@ -138,25 +138,25 @@  and mark the resolved paths with `git add` (or `git rm` if the merge  should result in deletion of the path).   ---conflict=<style>:: +`--conflict=<style>`:: 	The same as `--merge` option above, but changes the way the 	conflicting hunks are presented, overriding the 	`merge.conflictStyle` configuration variable. Possible values are -	"merge" (default), "diff3", and "zdiff3". +	`merge` (default), `diff3`, and `zdiff3`.   --q:: ---quiet:: +`-q`:: +`--quiet`:: 	Quiet, suppress feedback messages.   ---progress:: ---no-progress:: +`--progress`:: +`--no-progress`:: 	Progress status is reported on the standard error stream 	by default when it is attached to a terminal, unless `--quiet` 	is specified. This flag enables progress reporting even if not 	attached to a terminal, regardless of `--quiet`.   --t:: ---track [direct|inherit]:: +`-t`:: +`--track[ (direct|inherit)]`:: 	When creating a new branch, set up "upstream" configuration. 	`-c` is implied. See `--track` in linkgit:git-branch[1] for 	details. @@ -171,22 +171,22 @@  name, the guessing is aborted. You can explicitly give a name with  `-c` in such a case.   ---no-track:: +`--no-track`:: 	Do not set up "upstream" configuration, even if the 	`branch.autoSetupMerge` configuration variable is true.   ---orphan <new-branch>:: -	Create a new unborn branch, named `<new-branch>`. All +`--orphan <new-branch>`:: +	Create a new unborn branch, named _<new-branch>_. All 	tracked files are removed.   ---ignore-other-worktrees:: +`--ignore-other-worktrees`:: 	`git switch` refuses when the wanted ref is already 	checked out by another worktree. This option makes it check 	the ref out anyway. In other words, the ref can be held by 	more than one worktree.   ---recurse-submodules:: ---no-recurse-submodules:: +`--recurse-submodules`:: +`--no-recurse-submodules`:: 	Using `--recurse-submodules` will update the content of all 	active submodules according to the commit recorded in the 	superproject. If nothing (or `--no-recurse-submodules`) is @@ -239,7 +239,7 @@  ------------    You can grow a new branch from any commit. For example, switch to -"HEAD~3" and create branch "fixup": +"`HEAD~3`" and create branch "`fixup`":    ------------  $ git switch -c fixup HEAD~3 @@ -251,8 +251,8 @@    ------------  $ git switch new-topic -Branch 'new-topic' set up to track remote branch 'new-topic' from 'origin' -Switched to a new branch 'new-topic' +Branch `new-topic` set up to track remote branch `new-topic` from `origin` +Switched to a new branch `new-topic`  ------------    To check out commit `HEAD~3` for temporary inspection or experiment 
diff --git a/git-switch.html b/git-switch.html index f97995e..28e74ab 100644 --- a/git-switch.html +++ b/git-switch.html 
@@ -452,10 +452,10 @@  <h2 id="_synopsis">SYNOPSIS</h2>  <div class="sectionbody">  <div class="verseblock"> -<pre class="content"><em>git switch</em> [&lt;options&gt;] [--no-guess] &lt;branch&gt; -<em>git switch</em> [&lt;options&gt;] --detach [&lt;start-point&gt;] -<em>git switch</em> [&lt;options&gt;] (-c|-C) &lt;new-branch&gt; [&lt;start-point&gt;] -<em>git switch</em> [&lt;options&gt;] --orphan &lt;new-branch&gt;</pre> +<pre class="content"><code>git</code> <code>switch</code> [<em>&lt;options&gt;</em>] [<code>--no-guess</code>] <em>&lt;branch&gt;</em> +<code>git</code> <code>switch</code> [<em>&lt;options&gt;</em>] <code>--detach</code> [<em>&lt;start-point&gt;</em>] +<code>git</code> <code>switch</code> [<em>&lt;options&gt;</em>] (<code>-c</code>|<code>-C</code>) <em>&lt;new-branch&gt;</em> [<em>&lt;start-point&gt;</em>] +<code>git</code> <code>switch</code> [<em>&lt;options&gt;</em>] <code>--orphan</code> <em>&lt;new-branch&gt;</em></pre>  </div>  </div>  </div> @@ -489,36 +489,36 @@  <div class="sectionbody">  <div class="dlist">  <dl> -<dt class="hdlist1">&lt;branch&gt;</dt> +<dt class="hdlist1"><em>&lt;branch&gt;</em></dt>  <dd>  <p>Branch to switch to.</p>  </dd> -<dt class="hdlist1">&lt;new-branch&gt;</dt> +<dt class="hdlist1"><em>&lt;new-branch&gt;</em></dt>  <dd>  <p>Name for the new branch.</p>  </dd> -<dt class="hdlist1">&lt;start-point&gt;</dt> +<dt class="hdlist1"><em>&lt;start-point&gt;</em></dt>  <dd>  <p>The starting point for the new branch. Specifying a  <em>&lt;start-point&gt;</em> allows you to create a branch based on some -other point in history than where HEAD currently points. (Or, +other point in history than where <code>HEAD</code> currently points. (Or,  in the case of <code>--detach</code>, allows you to inspect and detach  from some other point.)</p>  <div class="paragraph"> -<p>You can use the <code>@</code>{-N} syntax to refer to the N-th last -branch/commit switched to using "git switch" or "git checkout" +<p>You can use the <code>@</code>{-<em>&lt;N&gt;</em>} syntax to refer to the <em>&lt;N&gt;</em>-th last +branch/commit switched to using <code>git</code> <code>switch</code> or <code>git</code> <code>checkout</code>  operation. You may also specify <code>-</code> which is synonymous to <code>@</code>{-1}.  This is often used to switch quickly between two branches, or to undo  a branch switch by mistake.</p>  </div>  <div class="paragraph"> -<p>As a special case, you may use <code>A</code><code>...</code><code>B</code> as a shortcut for the merge -base of <code>A</code> and <code>B</code> if there is exactly one merge base. You can leave -out at most one of <code>A</code> and <code>B</code>, in which case it defaults to <code>HEAD</code>.</p> +<p>As a special case, you may use <em>&lt;rev-a&gt;</em><code>...</code><em>&lt;rev-b&gt;</em> as a shortcut for the merge +base of <em>&lt;rev-a&gt;</em> and <em>&lt;rev-b&gt;</em> if there is exactly one merge base. You can leave +out at most one of <em>&lt;rev-a&gt;</em> and <em>&lt;rev-b&gt;</em>, in which case it defaults to <code>HEAD</code>.</p>  </div>  </dd> -<dt class="hdlist1">-c &lt;new-branch&gt;</dt> -<dt class="hdlist1">--create &lt;new-branch&gt;</dt> +<dt class="hdlist1"><code>-c</code> <em>&lt;new-branch&gt;</em></dt> +<dt class="hdlist1"><code>--create</code> <em>&lt;new-branch&gt;</em></dt>  <dd>  <p>Create a new branch named <em>&lt;new-branch&gt;</em> starting at  <em>&lt;start-point&gt;</em> before switching to the branch. This is the @@ -530,34 +530,34 @@  </div>  </div>  <div class="paragraph"> -<p>that is to say, the branch is not reset/created unless "git switch" is +<p>that is to say, the branch is not reset/created unless <code>git</code> <code>switch</code> is  successful (e.g., when the branch is in use in another worktree, not  just the current branch stays the same, but the branch is not reset to  the start-point, either).</p>  </div>  </dd> -<dt class="hdlist1">-C &lt;new-branch&gt;</dt> -<dt class="hdlist1">--force-create &lt;new-branch&gt;</dt> +<dt class="hdlist1"><code>-C</code> <em>&lt;new-branch&gt;</em></dt> +<dt class="hdlist1"><code>--force-create</code> <em>&lt;new-branch&gt;</em></dt>  <dd>  <p>Similar to <code>--create</code> except that if <em>&lt;new-branch&gt;</em> already  exists, it will be reset to <em>&lt;start-point&gt;</em>. This is a  convenient shortcut for:</p>  <div class="listingblock">  <div class="content"> -<pre>$ git branch -f &lt;new-branch&gt; -$ git switch &lt;new-branch&gt;</pre> +<pre>$ git branch -f _&lt;new-branch&gt;_ +$ git switch _&lt;new-branch&gt;_</pre>  </div>  </div>  </dd> -<dt class="hdlist1">-d</dt> -<dt class="hdlist1">--detach</dt> +<dt class="hdlist1"><code>-d</code></dt> +<dt class="hdlist1"><code>--detach</code></dt>  <dd>  <p>Switch to a commit for inspection and discardable  experiments. See the "DETACHED HEAD" section in  <a href="git-checkout.html">git-checkout(1)</a> for details.</p>  </dd> -<dt class="hdlist1">--guess</dt> -<dt class="hdlist1">--no-guess</dt> +<dt class="hdlist1"><code>--guess</code></dt> +<dt class="hdlist1"><code>--no-guess</code></dt>  <dd>  <p>If <em>&lt;branch&gt;</em> is not found but there does exist a tracking  branch in exactly one remote (call it <em>&lt;remote&gt;</em>) with a @@ -584,12 +584,12 @@  variable.</p>  </div>  </dd> -<dt class="hdlist1">-f</dt> -<dt class="hdlist1">--force</dt> +<dt class="hdlist1"><code>-f</code></dt> +<dt class="hdlist1"><code>--force</code></dt>  <dd>  <p>An alias for <code>--discard-changes</code>.</p>  </dd> -<dt class="hdlist1">--discard-changes</dt> +<dt class="hdlist1"><code>--discard-changes</code></dt>  <dd>  <p>Proceed even if the index or the working tree differs from  <code>HEAD</code>. Both the index and working tree are restored to match @@ -597,8 +597,8 @@  submodule content is also restored to match the switching  target. This is used to throw away local changes.</p>  </dd> -<dt class="hdlist1">-m</dt> -<dt class="hdlist1">--merge</dt> +<dt class="hdlist1"><code>-m</code></dt> +<dt class="hdlist1"><code>--merge</code></dt>  <dd>  <p>If you have local modifications to one or more files that are  different between the current branch and the branch to which @@ -614,28 +614,28 @@  should result in deletion of the path).</p>  </div>  </dd> -<dt class="hdlist1">--conflict=&lt;style&gt;</dt> +<dt class="hdlist1"><code>--conflict=</code><em>&lt;style&gt;</em></dt>  <dd>  <p>The same as <code>--merge</code> option above, but changes the way the  conflicting hunks are presented, overriding the  <code>merge.conflictStyle</code> configuration variable. Possible values are -"merge" (default), "diff3", and "zdiff3".</p> +<code>merge</code> (default), <code>diff3</code>, and <code>zdiff3</code>.</p>  </dd> -<dt class="hdlist1">-q</dt> -<dt class="hdlist1">--quiet</dt> +<dt class="hdlist1"><code>-q</code></dt> +<dt class="hdlist1"><code>--quiet</code></dt>  <dd>  <p>Quiet, suppress feedback messages.</p>  </dd> -<dt class="hdlist1">--progress</dt> -<dt class="hdlist1">--no-progress</dt> +<dt class="hdlist1"><code>--progress</code></dt> +<dt class="hdlist1"><code>--no-progress</code></dt>  <dd>  <p>Progress status is reported on the standard error stream  by default when it is attached to a terminal, unless <code>--quiet</code>  is specified. This flag enables progress reporting even if not  attached to a terminal, regardless of <code>--quiet</code>.</p>  </dd> -<dt class="hdlist1">-t</dt> -<dt class="hdlist1">--track [direct|inherit]</dt> +<dt class="hdlist1"><code>-t</code></dt> +<dt class="hdlist1"><code>--track</code>[ (<code>direct</code>|<code>inherit</code>)]</dt>  <dd>  <p>When creating a new branch, set up "upstream" configuration.  <code>-c</code> is implied. See <code>--track</code> in <a href="git-branch.html">git-branch(1)</a> for @@ -652,25 +652,25 @@  <code>-c</code> in such a case.</p>  </div>  </dd> -<dt class="hdlist1">--no-track</dt> +<dt class="hdlist1"><code>--no-track</code></dt>  <dd>  <p>Do not set up "upstream" configuration, even if the  <code>branch.autoSetupMerge</code> configuration variable is true.</p>  </dd> -<dt class="hdlist1">--orphan &lt;new-branch&gt;</dt> +<dt class="hdlist1"><code>--orphan</code> <em>&lt;new-branch&gt;</em></dt>  <dd>  <p>Create a new unborn branch, named <em>&lt;new-branch&gt;</em>. All  tracked files are removed.</p>  </dd> -<dt class="hdlist1">--ignore-other-worktrees</dt> +<dt class="hdlist1"><code>--ignore-other-worktrees</code></dt>  <dd>  <p><code>git</code> <code>switch</code> refuses when the wanted ref is already  checked out by another worktree. This option makes it check  the ref out anyway. In other words, the ref can be held by  more than one worktree.</p>  </dd> -<dt class="hdlist1">--recurse-submodules</dt> -<dt class="hdlist1">--no-recurse-submodules</dt> +<dt class="hdlist1"><code>--recurse-submodules</code></dt> +<dt class="hdlist1"><code>--no-recurse-submodules</code></dt>  <dd>  <p>Using <code>--recurse-submodules</code> will update the content of all  active submodules according to the commit recorded in the @@ -740,7 +740,7 @@  </div>  <div class="paragraph">  <p>You can grow a new branch from any commit. For example, switch to -"HEAD~3" and create branch "fixup":</p> +"<code>HEAD~3</code>" and create branch "<code>fixup</code>":</p>  </div>  <div class="listingblock">  <div class="content"> @@ -755,8 +755,8 @@  <div class="listingblock">  <div class="content">  <pre>$ git switch new-topic -Branch 'new-topic' set up to track remote branch 'new-topic' from 'origin' -Switched to a new branch 'new-topic'</pre> +Branch `new-topic` set up to track remote branch `new-topic` from `origin` +Switched to a new branch `new-topic`</pre>  </div>  </div>  <div class="paragraph"> @@ -790,7 +790,7 @@  </div>  <div class="dlist">  <dl> -<dt class="hdlist1">checkout.defaultRemote</dt> +<dt class="hdlist1"><code>checkout.defaultRemote</code></dt>  <dd>  <p>When you run <code>git</code> <code>checkout</code> <em>&lt;something&gt;</em>  or <code>git</code> <code>switch</code> <em>&lt;something&gt;</em> and only have one @@ -811,13 +811,13 @@  commands or functionality in the future.</p>  </div>  </dd> -<dt class="hdlist1">checkout.guess</dt> +<dt class="hdlist1"><code>checkout.guess</code></dt>  <dd>  <p>Provides the default value for the <code>--guess</code> or <code>--no-guess</code>  option in <code>git</code> <code>checkout</code> and <code>git</code> <code>switch</code>. See  <a href="git-switch.html">git-switch(1)</a> and <a href="git-checkout.html">git-checkout(1)</a>.</p>  </dd> -<dt class="hdlist1">checkout.workers</dt> +<dt class="hdlist1"><code>checkout.workers</code></dt>  <dd>  <p>The number of parallel workers to use when updating the working tree.  The default is one, i.e. sequential execution. If set to a value less @@ -825,15 +825,24 @@  available. This setting and <code>checkout.thresholdForParallelism</code> affect  all commands that perform checkout. E.g. checkout, clone, reset,  sparse-checkout, etc.</p> -<div class="paragraph"> -<p>Note: Parallel checkout usually delivers better performance for repositories +<div class="admonitionblock note"> +<table> +<tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content"> +Parallel checkout usually delivers better performance for repositories  located on SSDs or over NFS. For repositories on spinning disks and/or machines  with a small number of cores, the default sequential checkout often performs  better. The size and compression level of a repository might also influence how -well the parallel version performs.</p> +well the parallel version performs. +</td> +</tr> +</table>  </div>  </dd> -<dt class="hdlist1">checkout.thresholdForParallelism</dt> +<dt class="hdlist1"><code>checkout.thresholdForParallelism</code></dt>  <dd>  <p>When running parallel checkout with a small number of files, the cost  of subprocess spawning and inter-process communication might outweigh @@ -865,7 +874,7 @@  </div>  <div id="footer">  <div id="footer-text"> -Last updated 2025-02-14 21:38:14 -0800 +Last updated 2025-06-02 12:42:06 -0700  </div>  </div>  </body> 
diff --git a/merge-options.adoc b/merge-options.adoc index 0022185..078f4f6 100644 --- a/merge-options.adoc +++ b/merge-options.adoc 
@@ -1,23 +1,23 @@ ---commit:: ---no-commit:: +`--commit`:: +`--no-commit`:: 	Perform the merge and commit the result. This option can -	be used to override --no-commit. +	be used to override `--no-commit`.  ifdef::git-pull[] 	Only useful when merging.  endif::git-pull[]  + -With --no-commit perform the merge and stop just before creating +With `--no-commit` perform the merge and stop just before creating  a merge commit, to give the user a chance to inspect and further  tweak the merge result before committing.  +  Note that fast-forward updates do not create a merge commit and -therefore there is no way to stop those merges with --no-commit. +therefore there is no way to stop those merges with `--no-commit`.  Thus, if you want to ensure your branch is not changed or updated -by the merge command, use --no-ff with --no-commit. +by the merge command, use `--no-ff` with `--no-commit`.   ---edit:: --e:: ---no-edit:: +`--edit`:: +`-e`:: +`--no-edit`:: 	Invoke an editor before committing successful mechanical merge to 	further edit the auto-generated merge message, so that the user 	can explain and justify the merge. The `--no-edit` option can be @@ -35,17 +35,17 @@  updated behaviour, the environment variable `GIT_MERGE_AUTOEDIT` can be  set to `no` at the beginning of them.   ---cleanup=<mode>:: +`--cleanup=<mode>`:: 	This option determines how the merge message will be cleaned up before 	committing. See linkgit:git-commit[1] for more details. In addition, if -	the '<mode>' is given a value of `scissors`, scissors will be appended +	the _<mode>_ is given a value of `scissors`, scissors will be appended 	to `MERGE_MSG` before being passed on to the commit machinery in the 	case of a merge conflict.    ifdef::git-merge[] ---ff:: ---no-ff:: ---ff-only:: +`--ff`:: +`--no-ff`:: +`--ff-only`:: 	Specifies how a merge is handled when the merged-in history is 	already a descendant of the current history. `--ff` is the 	default unless merging an annotated (and possibly signed) tag @@ -53,13 +53,13 @@ 	hierarchy, in which case `--no-ff` is assumed.  endif::git-merge[]  ifdef::git-pull[] ---ff-only:: +`--ff-only`:: 	Only update to the new history if there is no divergent local 	history. This is the default when no method for reconciling 	divergent histories is provided (via the --rebase=* flags).   ---ff:: ---no-ff:: +`--ff`:: +`--no-ff`:: 	When merging rather than rebasing, specifies how a merge is 	handled when the merged-in history is already a descendant of 	the current history. If merging is requested, `--ff` is the @@ -81,40 +81,40 @@  When not possible, refuse to merge and exit with a non-zero status.  endif::git-merge[]   --S[<keyid>]:: ---gpg-sign[=<keyid>]:: ---no-gpg-sign:: -	GPG-sign the resulting merge commit. The `keyid` argument is +`-S[<key-id>]`:: +`--gpg-sign[=<key-id>]`:: +`--no-gpg-sign`:: +	GPG-sign the resulting merge commit. The _<key-id>_ argument is 	optional and defaults to the committer identity; if specified, 	it must be stuck to the option without a space. `--no-gpg-sign` 	is useful to countermand both `commit.gpgSign` configuration variable, 	and earlier `--gpg-sign`.   ---log[=<n>]:: ---no-log:: +`--log[=<n>]`:: +`--no-log`:: 	In addition to branch names, populate the log message with -	one-line descriptions from at most <n> actual commits that are being +	one-line descriptions from at most _<n>_ actual commits that are being 	merged. See also linkgit:git-fmt-merge-msg[1].  ifdef::git-pull[] 	Only useful when merging.  endif::git-pull[]  + -With --no-log do not list one-line descriptions from the +With `--no-log` do not list one-line descriptions from the  actual commits being merged.    include::signoff-option.adoc[]   ---stat:: --n:: ---no-stat:: +`--stat`:: +`-n`:: +`--no-stat`:: 	Show a diffstat at the end of the merge. The diffstat is also 	controlled by the configuration option merge.stat.  + -With -n or --no-stat do not show a diffstat at the end of the +With `-n` or `--no-stat` do not show a diffstat at the end of the  merge.   ---squash:: ---no-squash:: +`--squash`:: +`--no-squash`:: 	Produce the working tree and index state as if a real merge 	happened (except for the merge information), but do not actually 	make a commit, move the `HEAD`, or record `$GIT_DIR/MERGE_HEAD` @@ -123,16 +123,16 @@ 	the current branch whose effect is the same as merging another 	branch (or more in case of an octopus).  + -With --no-squash perform the merge and commit the result. This -option can be used to override --squash. +With `--no-squash` perform the merge and commit the result. This +option can be used to override `--squash`.  + -With --squash, --commit is not allowed, and will fail. +With `--squash`, `--commit` is not allowed, and will fail.  ifdef::git-pull[]  +  Only useful when merging.  endif::git-pull[]   ---[no-]verify:: +`--[no-]verify`:: 	By default, the pre-merge and commit-msg hooks are run. 	When `--no-verify` is given, these are bypassed. 	See also linkgit:githooks[5]. @@ -140,21 +140,21 @@ 	Only useful when merging.  endif::git-pull[]   --s <strategy>:: ---strategy=<strategy>:: +`-s <strategy>`:: +`--strategy=<strategy>`:: 	Use the given merge strategy; can be supplied more than 	once to specify them in the order they should be tried. 	If there is no `-s` option, a built-in list of strategies 	is used instead (`ort` when merging a single head, 	`octopus` otherwise).   --X <option>:: ---strategy-option=<option>:: +`-X <option>`:: +`--strategy-option=<option>`:: 	Pass merge strategy specific option through to the merge 	strategy.   ---verify-signatures:: ---no-verify-signatures:: +`--verify-signatures`:: +`--no-verify-signatures`:: 	Verify that the tip commit of the side branch being merged is 	signed with a valid key, i.e. a key that has a valid uid: in the 	default trust model, this means the signing key has been signed by @@ -165,22 +165,22 @@  Only useful when merging.  endif::git-pull[]   ---summary:: ---no-summary:: -	Synonyms to --stat and --no-stat; these are deprecated and will be +`--summary`:: +`--no-summary`:: +	Synonyms to `--stat` and `--no-stat`; these are deprecated and will be 	removed in the future.    ifndef::git-pull[] --q:: ---quiet:: -	Operate quietly. Implies --no-progress. +`-q`:: +`--quiet`:: +	Operate quietly. Implies `--no-progress`.   --v:: ---verbose:: +`-v`:: +`--verbose`:: 	Be verbose.   ---progress:: ---no-progress:: +`--progress`:: +`--no-progress`:: 	Turn progress on/off explicitly. If neither is specified, 	progress is shown if standard error is connected to a terminal. 	Note that not all merge strategies may support progress @@ -188,8 +188,8 @@    endif::git-pull[]   ---autostash:: ---no-autostash:: +`--autostash`:: +`--no-autostash`:: 	Automatically create a temporary stash entry before the operation 	begins, record it in the ref `MERGE_AUTOSTASH` 	and apply it after the operation ends. This means @@ -197,13 +197,13 @@ 	with care: the final stash application after a successful 	merge might result in non-trivial conflicts.   ---allow-unrelated-histories:: +`--allow-unrelated-histories`:: 	By default, `git merge` command refuses to merge histories 	that do not share a common ancestor. This option can be 	used to override this safety when merging histories of two 	projects that started their lives independently. As that is 	a very rare occasion, no configuration variable to enable -	this by default exists and will not be added. +	this by default exists or will be added.  ifdef::git-pull[]  +  Only useful when merging. 
diff --git a/merge-strategies.adoc b/merge-strategies.adoc index 9e034f4..2ba43f8 100644 --- a/merge-strategies.adoc +++ b/merge-strategies.adoc 
@@ -6,7 +6,7 @@  can also take their own options, which can be passed by giving `-X<option>`  arguments to `git merge` and/or `git pull`.   -ort:: +`ort`:: 	This is the default merge strategy when pulling or merging one 	branch. This strategy can only resolve two heads using a 	3-way merge algorithm. When there is more than one common @@ -29,26 +29,26 @@  as a resolution a submodule commit that is descendant of the conflicting  ones, if one exists.  + -The 'ort' strategy can take the following options: +The `ort` strategy can take the following options:   -ours;; +`ours`;; 	This option forces conflicting hunks to be auto-resolved cleanly by 	favoring 'our' version. Changes from the other tree that do not 	conflict with our side are reflected in the merge result. 	For a binary file, the entire contents are taken from our side.  + -This should not be confused with the 'ours' merge strategy, which does not +This should not be confused with the `ours` merge strategy, which does not  even look at what the other tree contains at all. It discards everything  the other tree did, declaring 'our' history contains all that happened in it.   -theirs;; -	This is the opposite of 'ours'; note that, unlike 'ours', there is -	no 'theirs' merge strategy to confuse this merge option with. +`theirs`;; +	This is the opposite of `ours`; note that, unlike `ours`, there is +	no `theirs` merge strategy to confuse this merge option with.   -ignore-space-change;; -ignore-all-space;; -ignore-space-at-eol;; -ignore-cr-at-eol;; +`ignore-space-change`;; +`ignore-all-space`;; +`ignore-space-at-eol`;; +`ignore-cr-at-eol`;; 	Treats lines with the indicated type of whitespace change as 	unchanged for the sake of a three-way merge. Whitespace 	changes mixed with other changes to a line are not ignored. @@ -61,7 +61,7 @@  version includes a substantial change, 'their' version is used;  * Otherwise, the merge proceeds in the usual way.   -renormalize;; +`renormalize`;; 	This runs a virtual check-out and check-in of all three stages 	of any file which needs a three-way merge. This option is 	meant to be used when merging branches with different clean @@ -69,31 +69,31 @@ 	branches with differing checkin/checkout attributes" in 	linkgit:gitattributes[5] for details.   -no-renormalize;; +`no-renormalize`;; 	Disables the `renormalize` option. This overrides the 	`merge.renormalize` configuration variable.   -find-renames[=<n>];; +`find-renames[=<n>]`;; 	Turn on rename detection, optionally setting the similarity 	threshold. This is the default. This overrides the -	'merge.renames' configuration variable. +	`merge.renames` configuration variable. 	See also linkgit:git-diff[1] `--find-renames`.   -rename-threshold=<n>;; +`rename-threshold=<n>`;; 	Deprecated synonym for `find-renames=<n>`.   -no-renames;; +`no-renames`;; 	Turn off rename detection. This overrides the `merge.renames` 	configuration variable. 	See also linkgit:git-diff[1] `--no-renames`.   -histogram;; +`histogram`;; 	Deprecated synonym for `diff-algorithm=histogram`.   -patience;; +`patience`;; 	Deprecated synonym for `diff-algorithm=patience`.   -diff-algorithm=[histogram|minimal|myers|patience];; +`diff-algorithm=(histogram|minimal|myers|patience)`;; 	Use a different diff algorithm while merging, which can help 	avoid mismerges that occur due to unimportant matching lines 	(such as braces from distinct functions). See also @@ -101,49 +101,49 @@ 	defaults to `diff-algorithm=histogram`, while regular diffs 	currently default to the `diff.algorithm` config setting.   -subtree[=<path>];; +`subtree[=<path>]`;; 	This option is a more advanced form of 'subtree' strategy, where 	the strategy makes a guess on how two trees must be shifted to 	match with each other when merging. Instead, the specified path 	is prefixed (or stripped from the beginning) to make the shape of 	two trees to match.   -recursive:: +`recursive`:: 	This is now a synonym for `ort`. It was an alternative 	implementation until v2.49.0, but was redirected to mean `ort` 	in v2.50.0. The previous recursive strategy was the default 	strategy for resolving two heads from Git v0.99.9k until 	v2.33.0.   -resolve:: +`resolve`:: 	This can only resolve two heads (i.e. the current branch 	and another branch you pulled from) using a 3-way merge 	algorithm. It tries to carefully detect criss-cross 	merge ambiguities. It does not handle renames.   -octopus:: +`octopus`:: 	This resolves cases with more than two heads, but refuses to do 	a complex merge that needs manual resolution. It is 	primarily meant to be used for bundling topic branch 	heads together. This is the default merge strategy when 	pulling or merging more than one branch.   -ours:: +`ours`:: 	This resolves any number of heads, but the resulting tree of the 	merge is always that of the current branch head, effectively 	ignoring all changes from all other branches. It is meant to 	be used to supersede old development history of side -	branches. Note that this is different from the -Xours option to -	the 'ort' merge strategy. +	branches. Note that this is different from the `-Xours` option to +	the `ort` merge strategy.   -subtree:: +`subtree`:: 	This is a modified `ort` strategy. When merging trees A and 	B, if B corresponds to a subtree of A, B is first adjusted to 	match the tree structure of A, instead of reading the trees at 	the same level. This adjustment is also done to the common 	ancestor tree.   -With the strategies that use 3-way merge (including the default, 'ort'), +With the strategies that use 3-way merge (including the default, `ort`),  if a change is made on both branches, but later reverted on one of the  branches, that change will be present in the merged result; some people find  this behavior confusing. It occurs because only the heads and the merge base 
diff --git a/rerere-options.adoc b/rerere-options.adoc index c3321dd..b0b9201 100644 --- a/rerere-options.adoc +++ b/rerere-options.adoc 
@@ -1,5 +1,5 @@ ---rerere-autoupdate:: ---no-rerere-autoupdate:: +`--rerere-autoupdate`:: +`--no-rerere-autoupdate`:: 	After the rerere mechanism reuses a recorded resolution on 	the current conflict to update the files in the working 	tree, allow it to also update the index with the result of 
diff --git a/technical/sparse-checkout.adoc b/technical/sparse-checkout.adoc index dc2e763..8202172 100644 --- a/technical/sparse-checkout.adoc +++ b/technical/sparse-checkout.adoc 
@@ -66,7 +66,7 @@ 	reasons: (1) users in cone mode specify directories rather than 	patterns (their directories are transformed into patterns, but 	users may think you are talking about non-cone mode if you use the -	word "patterns"), and (b) the sparse specification might +	word "patterns"), and (2) the sparse specification might 	transiently differ in the working tree or index from the sparsity 	patterns (see "Sparse specification vs. sparsity patterns").